📄 portscandetect_tab.h
字号:
#ifndef PORTTAB_H#define PORTTAB_H#include <qvariant.h>#include <qdialog.h>#include <qapplication.h>#include <qwidget.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 <qtextstream.h>#include <qfile.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 <nids.h>}#include <iostream>#include <fstream>#include <cstdlib>#include <string>#include <vector>#include <sys/time.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h> //struct in_addr#include <arpa/inet.h> //定义了inet_ntoa()函数#include "network.h"/*-----------------------------------------------------------------------------------------------------------------------下面是检测扫描用的扫描信息数据结构----------------------------------------------------------------------------------------------------------------------- */struct scan{ u_int addr; /* 地址 */ unsigned short port; /* 端口号 */ u_char flags; /* 标记 */};/*-----------------------------------------------------------------------------------------------------------------------下面是检测扫描时用到的扫描主机数据结构----------------------------------------------------------------------------------------------------------------------- */struct host{ struct host *next; /* 下一个主机结点 */ struct host *prev; /* 前一个主机结点 */ u_int addr; /* 地址 */ int modtime; /* 时间 */ int n_packets; /* 个数 */ struct scan *packets; /* 扫描信息 */};/*-----------------------------------------------------------------------------------------------------------------------下面是IP协议首部的数据结构----------------------------------------------------------------------------------------------------------------------- */struct ip_header{ #if defined(WORDS_BIGENDIAN) unsigned int ip_v: 4, ip_hl: 4; #else unsigned int ip_hl: 4, ip_v: 4; #endif unsigned int ip_tos; unsigned char ip_len; unsigned char ip_id; unsigned char ip_off; unsigned int ip_ttl; unsigned int ip_p; unsigned char ip_csum; struct in_addr ip_src; struct in_addr ip_dst;};/*-----------------------------------------------------------------------------------------------------------------------下面是TCP协议首部的数据结构----------------------------------------------------------------------------------------------------------------------- */struct tcp_header{ unsigned char th_sport; /* 源端口号 */ unsigned char th_dport; /* 目的端口号 */ unsigned short th_seq; /* 序列号 */ unsigned short th_ack; /* 确认号 */ #ifdef WORDS_BIGENDIAN unsigned int th_off: 4, /* 数据偏移 */ th_x2: 4; /* 保留 */ #else unsigned int th_x2: 4, /* 保留 */ th_off: 4; /* 数据偏移 */ #endif unsigned int th_flags; unsigned char th_win; /* 窗口大小 */ unsigned char th_sum; /* 校验和 */ unsigned char th_urp; /* 紧急指针 */};class PortFileDisplay_Thread;class PortScanDetect_Tab : public QWidget, QThread{ Q_OBJECTpublic: PortScanDetect_Tab(QWidget *parent = 0); ~PortScanDetect_Tab(); void run(); void stop(); private slots: void start_detect(); void start_display(); void clear_detect();private: static void my_nids_syslog( int type, int errnum, struct ip_header *iph, void *data); void detect_run(); void display(QString output); public: QListView* disp_listview; QListViewItem *list_item; private: QPushButton* portscan_start; QPushButton* portscan_clear; QString error_buf; volatile bool detect_stopped; volatile bool display_stopped; PortFileDisplay_Thread *readfiledisplay_thread;};class PortFileDisplay_Thread : public QThread{public: PortFileDisplay_Thread(PortScanDetect_Tab *parent = 0); ~PortFileDisplay_Thread(); void read_file_display(const QString &FILENAME, QListView *listview, QListViewItem *list_item ); void run(); void stop(); private: PortScanDetect_Tab *p;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -