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

📄 mysnifferdlg.h

📁 使用visualc++实现的网络嗅探器
💻 H
字号:
// MySnifferDlg.h : header file
//

#if !defined(AFX_MYSNIFFERDLG_H__DC1B5700_C47B_4BC4_8349_2DD2A0627BE5__INCLUDED_)
#define AFX_MYSNIFFERDLG_H__DC1B5700_C47B_4BC4_8349_2DD2A0627BE5__INCLUDED_

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

/////////////////////////////////////////////////////////////////////////////
// CMySnifferDlg dialog	

#define SIO_RCVALL            _WSAIOW(IOC_VENDOR,1)

/*
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]IHL]  Version  ]Type of Service]          Total Length         ]
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]         Identification        ]Flags]      Fragment Offset    ]
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]  Time to Live ]    Protocol   ]         Header Checksum       ]
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]                       Source Address                          ]
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]                    Destination Address                        ]
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]  TCP header, then your data ......                            ]
    ]                                                               ]
*/

/* IP Protocol Header */
typedef struct _IPHEADER {
	unsigned char	header_len:4;
	unsigned char	version:4;
	unsigned char	type_of_service;
	unsigned short	total_len;
	unsigned short	unique_ident;
	unsigned short	flags;
	unsigned char	time_to_live;
	unsigned char	proto;
	unsigned short	checksum;
	unsigned int	sourceIP;
	unsigned int	destIP;
}IPHEADER;

/*	Transffer level protocol flags,		*/
#define IPPROTO_IP				0				//IP
#define IPPROTO_ICMP			1				//ICMP
#define IPPROTO_IGMP			2				//Internet Group Management Protocol
#define IPPROTO_GGP				3				//gateway^2 (deprecated)
#define IPPROTO_TCP				6				//TCP
#define IPPROTO_PUP				12				//PUP?
#define IPPROTO_UDP				17				//User datagram protocol
#define IPPROTO_IDP				22				//xns idp?
#define IPPROTO_ND				77				//UNOFFICIAL NET DISK PROTO

#define IPPROTO_RAW				255				//raw IP Packet
#define IPPROTO_MAX				256	

#define PROTO_NUM				11

typedef struct _PROTN2T
{
	int		proto;
	char	*pprototext;
}PROTN2T;

/*
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]          Source Port          ]       Destination Port        ]
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]                        Sequence Number                        ]
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]                    Acknowledgment Number                      ]
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]  Data ]           ]U]A]P]R]S]F]                               ]
    ] Offset] Reserved  ]R]C]S]S]Y]I]            Window             ]
    ]       ]           ]G]K]H]T]N]N]                               ]
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]           Checksum            ]         Urgent Pointer        ]
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ]   your data ... next 500 octets                               ]
    ]   ......                                                      ]
*/

/* TCP Header */
typedef struct TCPPacketHead {
	WORD	SourPort;
	WORD	DestPort;
	DWORD	SeqNo;
	DWORD	AckNo;
	BYTE	HLen;
	BYTE	Flag;
	WORD	WndSize;
	WORD	ChkSum;
	WORD	UrqPtr;
}TCPHEADER;

#define TCP_URG 0x20	/* TCP URG */
#define TCP_ACK 0x10	/* TCP ACK */
#define TCP_PSH 0x08	/* TCP PSH */
#define TCP_RST 0x04	/* TCP RST */
#define TCP_SYN 0x02	/* TCP SYN */
#define TCP_FIN	0x01	/* TCP FIN */

typedef struct ICMPPacketHead {
	BYTE	Type;
	BYTE	Code;
	WORD	ChkSum;
}ICMPHEADER;

#define ICMP_HEAD_LEN 4	/* ICMP head length */

typedef struct UDPPacketHead {
	WORD	SourPort;
	WORD	DestPort;
	WORD	Len;
	WORD	ChkSum;
}UDPHEADER;

#define UDP_HEAD_LEN 8	/* UDP head length */



class CMySnifferDlg : public CDialog
{
// Construction
public:
	CMySnifferDlg(CWnd* pParent = NULL);	// standard constructor

	DWORD  m_ipsource;					// IP in net format
	DWORD  m_iphostsource;				// same IP in host format
	DWORD  m_ipcheckedhost;
	DWORD  m_threadID;
	SOCKET m_s;

friend UINT threadFunc(LPVOID p);
	void AddData(CString s0, CString s1, CString s2, CString s3, CString s4, CString s5, CString s6);

// Dialog Data
	//{{AFX_DATA(CMySnifferDlg)
	enum { IDD = IDD_MYSNIFFER_DIALOG };
	CButton	m_Start;
	CListCtrl	m_ListCtrl;
	//}}AFX_DATA

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

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CMySnifferDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnButton1();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_MYSNIFFERDLG_H__DC1B5700_C47B_4BC4_8349_2DD2A0627BE5__INCLUDED_)

⌨️ 快捷键说明

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