网络流量监测实验二利用WINPCAP编程实验报告.docx
- 文档编号:160246
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:6
- 大小:381.07KB
网络流量监测实验二利用WINPCAP编程实验报告.docx
《网络流量监测实验二利用WINPCAP编程实验报告.docx》由会员分享,可在线阅读,更多相关《网络流量监测实验二利用WINPCAP编程实验报告.docx(6页珍藏版)》请在冰豆网上搜索。
姓名:
班级:
班内序号:
学号:
----------------------------------
本次实验的内容是分析Winpcap程序,Winpcap程序包含在
winpcap_class.zip中,解压缩后有四个程序:
(1)Openinganadapterandcapturingpackets
(2)Handlingofflinedumpfiles
(3)SendingPackets
(4)GatheringStatisticsonthenetworktraffic
分别进入相关目录下,双击*.dsw,即可编译运行相关程序。
为了能让程序正常编译、运行,需要
l解压程序员开发包(WpdPack.rar)
l在tool的option的include和lib中加入WpdPack
的include目录和lib目录。
本次实验所有同学必须提交实验报告电子版一份,上交时注意要修改文档名。
实验报告内容是:
分别写出给定的四个程序(第一个已经给出,其他三个按照第一个写)的流程,关键函数接口及其作用,运行并截取运行结果
(截图)。
程序一:
Openinganadapterandcapturingpackets
1.程序流程
1)获得本机网络接口列表(如果出错,输出错误并退出)
2)打印列表信息(如果接口数量为0,输出错误并退出)
3)输入要捕获的网络接口序号(如果输入错误,释放列表,退出)
4)跳转到相应的网络接口
5)打开网络接口,建立捕获实例(如果出错,释放列表,退出)
6)释放网络接口列表
7)开始循环捕获数据包,不限制包数上限(如果出错则退出)
8)将捕获到的数据包信息(捕获时间、长度)打印出来
9)反复执行8)
2.关键函数及其作用:
1)pcap_findalldevs_ex:
获得适合的网络接口的列表。
列表中每个元素都记录了一个接口的信息。
2)pcap_freealldevs:
释放网络接口的列表。
3)pcap_open:
打开一个指定网络接口,可以通过这个接口来捕获或者发送数据包。
4)pcap_loop:
循环捕获数据包,收到的数据包都交给回调函数处理。
cnt指定了捕获数据包的最大数目。
5)cap_handler:
回调函数,处理每一个捕获的包。
3.运行结果:
程序二:
Handlingofflinedumpfiles
1、程序流程:
1)获得本机网络接口列表(如果出错,输出错误并退出)
2)打印列表信息(如果接口数量为0,输出错误并退出)
3)输入要捕获的网络接口序号(如果输入错误,释放列表,退出)
4)跳转到相应的网络接口
5)打开网络接口,建立捕获实例(如果出错,释放列表,退出)
6)打开输出文件(文件名example.cap,如果出错,提示错误信息并退出)
7)记录子网掩码地址(若没有获取到网络接口地址,则用255.255.255.0代替)
8)编译过滤规则(过滤器名fcode,设置仅捕获对应网络接口的TCP报文,若编译失败,提示错误信息,释放网络接口并退出)
9)设置过滤规则(若设置失败,提示错误信息,释放网络接口并退出)
10)释放网络接口列表
11)循环捕获数据包,不限制包数上限(如果出错则退出),同时保存数据包到输出文件
12)反复执行11)
2、函数接口及其作用(前面已经列出的,可以不写):
1)pcap_dump_open:
打开输出文件以用于存储数据包,fname是要输出的文件。
2)pcap_compile:
编译过滤规则,其中str是需要过滤的字符串,netmask是要捕获的子网掩码。
3)pcap_setfilter:
设置过滤规则,使过滤器生效。
4)pcap_dump:
保存数据包
3、运行结果(打开cap文件后,截图):
程序三:
SendingPackets
1、程序流程:
1)获得本机网络接口列表(如果出错,输出错误并退出)
2)打印列表信息(如果接口数量为0,输出错误并退出)
3)输入要捕获的网络接口序号(如果输入错误,释放列表,退出)
4)跳转到相应的网络接口
5)打开网络接口,建立捕获实例(如果出错,释放列表,退出)
6)数据包头(12位)填写目的MAC地址(3.3.3.3.3.3)和源MAC地址
(2.2.2.2.2.2)
7)填写数据包内容(988位,内容是序号模256的结果)
8)分配一个发送队列
9)设置发送数据包长和实际捕获的包长(均为1000)
10)在队列中增加数据包(共10000个,若增加错误则提示信息),同时记录增加数据包的个数
11)开始计时
12)发送队列中所有数据包(尽快发送模式),执行后返回已发送的队长,若小于原队长则提示错误信息(未发送完全)
13)结束计时
14)显示统计信息,包括消逝时间、发送的包数、平均每包的发送时间
15)按任意键后,销毁发送队列,关闭捕获实例,退出程序
2、函数接口及其作用(前面已经列出的,可以不写):
1)pcap_sendqueue_alloc:
分配一个发送队列,用于存放要发送的数据包。
2)pcap_sendqueue_queue:
在队列中增加一个数据包,pkt_header和
pkt_data分别表示包头和数据。
3)clock:
C中计时函数。
4)pcap_sendqueue_transmit:
发送一个队列,sync是同步标志,0表示尽快发送。
5)pcap_sendqueue_destroy:
销毁发送队列。
6)pcap_close:
关闭捕获实例。
3、运行结果:
程序四:
GatheringStatisticsonthenetworktraffic
1、程序流程:
1)获得本机网络接口列表(如果出错,输出错误并退出)
2)打印列表信息(如果接口数量为0,输出错误并退出)
3)输入要捕获的网络接口序号(如果输入错误,释放列表,退出)
4)跳转到相应的网络接口
5)打开网络接口,建立捕获实例(如果出错,释放列表,退出)
6)编译过滤规则(过滤器名fcode,设置仅捕获对应网络接口的TCP报文,若编译失败,提示错误信息,释放网络接口并退出)
7)设置过滤规则(若设置失败,提示错误信息,释放网络接口并退出)
8)设置工作模式为MODE_STAT(统计模式)
9)开始捕获,每捕获到一个非空包(捕获到空包则继续捕获)执行以下步骤
a)计算从上次捕获样本至现在产生的时延(需要上次捕获样本的时间点和当前捕获样本的时间点)
b)根据时延计算平均每秒传输的位数(BPS)和数据包个数(PPS)
c)获取计算机时间并转换成字符串
d)显示时间、BPS和PPS
e)把捕获上次样本的时间点用当前捕获的时间点代替,用于下一次的时延计算
10)重复执行9),若捕获的包不可读,显示错误信息并退出程序
2、函数接口及其作用(前面已经列出的,可以不写):
1)pcap_setmode:
设置工作模式,MODE_STAT表示统计模式。
2)pcap_next_ex:
每当一个包到到达以后,pcap_next_ex就会返回,返回的数据缓冲区里只包含一个包。
3)localtime:
获取当前时间。
4)strftime:
格式化时间字符串。
3、运行结果:
(为了不使统计结果都为0,统计过程中可以上网,来制造TCP流量)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络流量 监测 实验 利用 WINPCAP 编程 报告