logo资料库

ip数据包捕获程序设计实验 mfc.doc

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
步骤 1. 创建一个基于对话框的应用程序 PackCapture 实现步骤 步 骤 2. 添 加 控 件 IDC_EDIT_COUNT , IDC_EDIT_PACKET , IDC_BTN_CAPTURE 以及静态控件 Capture Number,Capture Information。 设置对话框标题为 “数据包捕获程序”。 步骤 3. 为以下控件增加 Value 变量 控件 IDC_EDIT_COUNT 控件 IDC_EDIT_PACKET 变量 int m_Count 变量 CString m_Packet 步骤 4. 在 stdafx.h 增加以下十二行: #include "winsock2.h" #include "ws2tcpip.h" #pragma comment(lib,"ws2_32.lib") #define SIO_RCVALL _WSAIOW(IOC_VENDOR,1) #define IPV4_VERSION 4 #define IPV6_VERSION 6 #define ICMP_PACKET 1 #define IGMP_PACKET 2 #define TCP_PACKET 6 8 #define EGP_PACKET #define UDP_PACKET 17 #define OSPF_PACKET 89 步骤 5. 为 CPackCaptureDlg 增加以下 private 类型的结构体定义: typedef struct IP_HEAD //IP 头部结构 { union { unsigned char Version; unsigned char HeadLen; //版本(字节前 4 位) //头部长度(字节后 4 位) }; unsigned char ServiceType; //服务类型 unsigned short TotalLen; unsigned short Identifier; union { //总长度 //标识符 unsigned short Flags; //标志位(字前 3 位) unsigned short FragOffset; // 片偏移(字后 13 位) }; unsigned char TimeToLive; //生存周期
unsigned char Protocol; unsigned short HeadChecksum; //头部校验和 //源 IP 地址 unsigned int unsigned int //目的 IP 地址 SourceAddr; DestinAddr; //协议 }ip_head; typedef struct ICMP_HEAD { //ICMP 头部结构 //类型 //代码 unsigned char Type; unsigned char Code; unsigned short HeadChecksum; //头部校验和 unsigned short Identifier; unsigned short Sequence; //标识符 //序号 }icmp_head; 步骤 6. 为按钮 IDC_BTN_CAPTURE 的单击事件增加函数 OnBtnCapture
分享到:
收藏