?? mysnifferdlg.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()
public:
afx_msg void OnBnClickedButton2();
};
//{{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 + -