📄 arp_tab.h
字号:
#ifndef ARPTAB_H#define ARPTAB_H#include <qvariant.h>#include <qdialog.h>#include <qcheckbox.h>#include <qheader.h>#include <qlabel.h>#include <qlineedit.h>#include <qlistview.h>#include <qpushbutton.h>#include <qtabwidget.h>#include <qwidget.h>#include <qlayout.h>#include <qvariant.h>#include <qtooltip.h>#include <qwhatsthis.h>#include <qimage.h>#include <qpixmap.h>#include <qradiobutton.h>#include <qbuttongroup.h>#include <qthread.h>class QVBoxLayout; class QHBoxLayout; class QGridLayout; class QCheckBox;class QLabel;class QLineEdit;class QListView;class QListViewItem;class QPushButton;class QTabWidget;class QWidget;class QRadioButton;class QButtonGroup;extern "C"{ #include <pcap.h> #include <libnet.h>}#include <iostream>#include <cstdlib>#include <string>#include <vector>#include <unistd.h> //getopt()#include <sys/time.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include "network.h"using namespace std;#define HOSTSCAN 0#define ARPCHEAT 1struct arp_header{ u_int16_t ar_hrd; /* Format of hardware address. */ u_int16_t ar_pro; /* Format of protocol address. */ u_int8_t ar_hln; /* Length of hardware address. */ u_int8_t ar_pln; /* Length of protocol address. */ u_int16_t ar_op; /* ARP opcode (command). */ u_int8_t src_eth[ETH_ALEN]; /* Sender hardware address. */ u_int8_t src_ip[IP_ALEN]; /* Sender IP address. */ u_int8_t dst_eth[ETH_ALEN]; /* Target hardware address. */ u_int8_t dst_ip[IP_ALEN]; /* Target IP address. */};struct host_info{ u_int8_t host_alive; //标志本网段内活动主机 char ip_str[20];//主机IP信息 char eth_str[20];//主机MAC信息};class ArpTab : public QWidget, QThread{ Q_OBJECTprivate slots: void start_arp(); void clear_arp(); void enableEth(); void enableIP(); void enableHostScan(); void enableArpCheat(); private: QCheckBox* arp_ip_check; QButtonGroup* work_mode; QRadioButton* hostScan_RadioButton; QRadioButton* arpCheat_RadioButton; QLineEdit* arp_ip_lineedit; QLineEdit* arp_eth_lineedit; QListView* disp_arp; QCheckBox* arp_eth_check; QPushButton* ARP_start; QPushButton* ARP_clear; QListViewItem *list_item; QString output_buf; QString error_buf; pcap_t *pcap; libnet_t *libnet; //Libnet handler char *device; bool workmode_flag; bool scan_flag; volatile bool stopped; private: void ip_addr_itoa(char *dst_ip_str, u_int8_t *src_ip); void eth_addr_itoa(char *dst_eth_str, u_int8_t *src_eth); void quit(); void host_scan(); void arp_cheat(); void display(QString output); public: ArpTab(QWidget *parent = 0); ~ArpTab(); void run(); void stop();};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -