文档详情

vc6.0编程简单抓包实验报告(共9篇).doc

发布:2017-05-05约2.11万字共45页下载文档
文本预览下载声明
vc6.0编程简单抓包实验报告(共9篇) 基于Winpcap 编程实现抓包实验 上海电力学院 计算机网络安全(1) 课程实验报告 实验名称:winpcap编程实验 基于Winpcap 编程实现抓包实验 一. 本设计要达到的目标 基于winpcap编程实现对网络数据的捕获,并分析数据类型,对于IP,ICMP,ARP,UDP等,能够自动识别其协议类型并分析帧的构成。 二.实现步骤 (1)需要通过资料来了解winpcap抓包的工作原理,熟悉其运行过程 Winpcap的内部结构 Wincap有三部分组成:一个数据包监听设备驱动程序,一个低级的动态连接库和一个高级的静态连接库。底层动态链接库运行在用户层,它将应用程序和数据包监听设备驱动程序隔离开来,使得应用程序可以不加修改地在不同的WINDOWS系统上运行。高级的静态链接库和应用程序编译在一起,它使用低级动态链接库提供的服务,向应用程序提供完善的监听接口。抓包是WinPcap的基本功能,也是NPF最重要的操作。在抓包的时候,驱动(例如NIC Driver)使用一个网络接口监视着数据包,并将这些数据包完整无缺地投递给用户级应用程序。 (2)进一步了解winpcap编程所需要的编译环境,下载WpdPack,了解编译环境所需要的库文件.在编译时需要把wpdpack中的include与lib添加进vc的库文件里。 (3)明确整个编程的步骤与具体函数。刚开始要定义,在主函数中获取设备接口信息,获得网络地址与掩码地址,打开网络接口,还要设置过滤规则。使用loop函数来回调循环捕获数据包,以便一层一层解析。 (4)还要定义几个以太网,ARP,IP,UDP,TCP,ICMP协议的格式。需要注意在存储空间中,在存储空间中才能更好的逐层分析,不然很容易出错 (5)定义分析协议的函数,定义方式与回调函数相同.常用的函数有:用于获取本机设备列表的pcap_findalldevs_ex函数 用于打开设备的pcap_open函数,可以指定为混杂模式打开 用于编译数据包过滤器的pcap_compile 函数 用于设置数据包过滤器的pcap_setfilter 函数 用于从设备读取数据包的pcap_netx_ex 函数 用于关闭设备的pcap_close 函数(参数为pcap_open 返回值) 用于释放设备列表的pcap_freealldevs 函数(对应pcap_findalldevs_ex) 三.系统流程图 四.关键代码及其分析 主函数 void main() { pcap_t *pcap_handle; /* Winpcap句柄 */ char error_content[PCAP_ERRBUF_SIZE]; /* 存储错误信息 */ char *net_interface;/* 网络接口 */ bpf_program bpf_filter; /* BPF过滤规则 */ char bpf_filter_string[] = ;/* 过滤规则字符串 */bpf_u_int32 net_mask;/* 掩码 */ bpf_u_int32 net_ip; /* 网路地址 */ net_interface = pcap_lookupdev(error_content); /* 获得可用的网络接口 */ pcap_lookupnet(net_interface, amp;net_ip, amp;net_mask, error_content);/* 获得网络地址和掩码地址 */ pcap_handle = pcap_open_live(net_interface, BUFSIZ, 1, 1, error_content); /* 打开网路接口 */ pcap_compile(pcap_handle, amp;bpf_filter, bpf_filter_string, 0, net_ip); /* 编译BPF过滤规则 */ pcap_setfilter(pcap_handle, amp;bpf_filter); /* 设置过滤规则 */ 对IP协议的定义 篇二:C程序设计实验报告(完整版) 工程学院 实 验 报 告 课 程 名 称: C程序设计 课 程 代 码: 8234510 学院(直属系): 年级/专业/班: 2010级汽电1班 学 生 姓 名:学 号: 31201008030实验总成绩: 任 课 教 师: 开 课 学 院:工程学院 实验中心名称: 交通实验中心 西华大学实验报告(理工类) 开课学院及实验室:汽车学院机房(5D-215) 实验时间: 年月日 1、实验目的 2、实验设备、仪
显示全部
相似文档