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

📄 ipmondlg.h

📁 sniffer 用原始套接字写的sniffer软件
💻 H
字号:
// ipmonDlg.h : header file
//

#if !defined(AFX_IPMONDLG_H__47076949_0324_11D5_924F_00010219EDF4__INCLUDED_)
#define AFX_IPMONDLG_H__47076949_0324_11D5_924F_00010219EDF4__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


typedef struct _PROTN2T
{ 
	int  proto ;			//协议标识
	char *pprototext ;		//名称
}PROTN2T ; 
						
#define PROTO_NUM  11 

/* The IP header */
typedef struct _IPHEADER {
        unsigned char  header_len:4;//版本及首部长度
        unsigned char  version:4;   //数据报类型
        unsigned char  tos;            // 服务类型
        unsigned short total_len;      // 数据包大小
        unsigned short ident;          // 数据报标识
        unsigned short flags;          //标志及片偏移
        unsigned char  ttl;            //生存时间
        unsigned char  proto;          //协议
        unsigned short checksum;       //首部校验和
        unsigned int   sourceIP;		//源地址
        unsigned int   destIP;			//目的地址
}IPHEADER;


//定义UDP头部长度
#define UDP_HEAD_LEN 8	/* UDP head length */

//#define PSEUDO_HEAD_LEN 12	/* Pseudo head length */
//定义ICMP头部长度
#define ICMP_HEAD_LEN 4	/* ICMP head length */

struct TCPPacketHead {
	WORD SourPort;//源端口
	WORD DestPort;//目的端口
	DWORD SeqNo;//序号
	DWORD AckNo;//确认号
	BYTE HLen;//数据偏移,数据起始处距离报文段起始处有多远
	BYTE Flag;//控制比特位
	WORD WndSize;//窗口大小,用于控制对方发送的数据量
	WORD ChkSum;//检验和
	WORD UrgPtr;//紧急指针
};

struct ICMPPacketHead {
	BYTE Type;//报文类型
	BYTE Code;//代码
	WORD ChkSum;//检验和
};

struct UDPPacketHead {
	WORD SourPort;//源端口
	WORD DestPort;//目的端口
	WORD Len;//UDP数据报长度
	WORD ChkSum;//检验和
};


///////////////////////////CString类型的包结构体,用来存储包内容用在treeview中//////////////////////////////////
typedef struct _CSTRING_IP {
        CString headerlen;    //版本及首部长度
        CString strversion;       //数据报类型
        CString strtos;            // 服务类型
        CString totallen;      // 数据包大小
        CString identf;          // 数据报标识
        CString flag;          //标志及片偏移
        CString ttlen;            //生存时间
        CString pro;          //协议
        CString checksum;       //首部校验和
        CString sourceip;		//源地址
        CString destip;			//目的地址
		int nextpro;
}CSTRING_IP;
typedef struct CSTRING_TCP{
	CString sourport;//源端口
	CString destport;//目的端口
	CString seqno;//序号
	CString ackno;//确认号
	CString headlen; //头长
	CString dlen;//数据长度
	CString hlen;//数据偏移,数据起始处距离报文段起始处有多远
	CString flag;//控制比特位
	CString wndsize;//窗口大小,用于控制对方发送的数据量
	CString chksum;//检验和
	CString urgptr;//紧急指针
}CSTRING_TCP;
typedef struct CSTRING_ICMP{
	CString sport;
	CString dport;
	CString type;//报文类型
	CString code;//代码
	CString chksum;//检验和
	CString hlen; //头长
	CString dlen;//数据长度

}CSTRING_ICMP;

typedef struct CSTRING_UDP{
	CString sourport;//源端口
	CString destport;//目的端口
	CString len;//UDP数据报长度
	CString dlen;//数据长度
	CString chksum;//检验和
}CSTRING_UDP;
/////////////////////////////////////////////////////////////////////////////
// CIpmonDlg dialog

class CIpmonDlg : public CDialog
{
// Construction
public:
	void showtree(int n);
	void showcount();
	void AddData(char *s,CString s0,CString s1,CString s2,CString s3,CString s4,CString s5,CString s6);
	CIpmonDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CIpmonDlg)
	enum { IDD = IDD_IPMON_DIALOG };
	CProgressCtrl	m_pro_other;
	CProgressCtrl	m_pro_icmp;
	CProgressCtrl	m_pro_tcp;
	CProgressCtrl	m_pro_udp;
	CTreeCtrl	m_tree;
	CListCtrl	m_ctrList;
	CButton	m_start;
	CString	m_edit;
	CString	m_edit_tcp;
	CString	m_edit_udp;
	CString	m_edit_icmp;
	CString	m_edit_all;
	CString	m_edit_other;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CIpmonDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	DWORD  m_ipsource     ; // IP in net format
	DWORD  m_iphostsource ; // same IP in host format
	DWORD  m_iphost;
	DWORD  m_ipcheckedhost;
	SOCKET m_s            ;
	DWORD  m_threadID     ;
	BOOL   m_Multihomed   ;
	BOOL   m_Local        ;
	CDWordArray m_IPArr   ;

	friend UINT threadFunc ( LPVOID p ) ;


	// Generated message map functions
	//{{AFX_MSG(CIpmonDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnStart();
	afx_msg void OnStop();
	afx_msg void OnExit();
	afx_msg void OnClickList(NMHDR* pNMHDR, LRESULT* pResult);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_IPMONDLG_H__47076949_0324_11D5_924F_00010219EDF4__INCLUDED_)

⌨️ 快捷键说明

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