⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sniff_tab.h

📁 嵌入式Linux环境下的网络安全检测软件
💻 H
字号:
#ifndef SNIFFTAB_H#define SNIFFTAB_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 <pcap.h>}#include <netinet/in.h>		//for struct in_addr  htons()#include <sys/socket.h>#include <arpa/inet.h>		//for inet_ntoa(),inet_aton()#include <netinet/if_ether.h>#include <netinet/ether.h>	//for ether_header#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <fstream>#include <string>#include <vector>#include "network.h"using namespace std;#define EXP_LEN 20class SniffFileDisplay_Thread;class Sniff_Tab : public QWidget, QThread{	Q_OBJECTprivate slots:	void enableEth();	void start_sniff();	void start_display();  	void clear_sniff();	void enableDefault();	private:	static void display_ether(const u_char*);	static void display_arp(const u_char*);	static void display_ip(const u_char*);	static void display_tcp(const u_char*,int offset);	static void display_udp(const u_char*,int offset);	static void display_payload(const u_char*,int);	static void print_hex_ascii_line(const u_char*,int,int);	std::vector<std::string> slip_str(std::string);	void init();	void sniff_run();	void display(QString output, QListView* disp_sniff, QListViewItem *list_item);	void err(const char* msg)	{		std::cerr<<msg<<std::endl;		exit();	}   	 static void getpacket(u_char* args,			  const struct pcap_pkthdr* header,			  const u_char* packet);	public:	Sniff_Tab();	~Sniff_Tab();	void run();	void stop();		public:	char* device;			static std::string str_key;	int num_packets;	std::string filter_exp;			QListView* disp_listview;	QListViewItem *list_item;	 private:        QPushButton* Sniff_clear;	QLabel* sniff_key_label;	QLabel* sniff_filter_label;	QLabel* sniff_num_label;	QPushButton* Sniff_start;	QLineEdit* sniff_key_lineedit;	QLineEdit* sniff_filter_lineedit;	QLineEdit* sniff_num_lineedit;	QLineEdit* sniff_Eth_lineedit;	QCheckBox* sniff_default_check;	QCheckBox* sniff_eth_check;		QString error_buf;	QString output_buf;	char errbuf[PCAP_ERRBUF_SIZE];		bpf_u_int32 net;	bpf_u_int32 mask;	pcap_t* handle;	struct bpf_program fp;		volatile bool sniff_stopped;	volatile bool display_stopped;	SniffFileDisplay_Thread *readfiledisplay_thread;};class SniffFileDisplay_Thread : public QThread{public:	SniffFileDisplay_Thread(Sniff_Tab *parent = 0);	~SniffFileDisplay_Thread();	void read_file_display(const QString &FILENAME, QListView *listview, QListViewItem *list_item );	void run();	void stop();	private:	Sniff_Tab *p;};#endif	//sinffer.h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -