- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WinPcap-本站主页.ppt
2009/12/30;内容组织;一、什么是WinPcap;一、什么是WinPcap ;引用WinPcap主页上的一段内容:
WinPcap是一个Win32平台的,用于捕获数据包和进行网络分析的体系结构。它包括了一个内核级的数据包过滤器,一个低层动态链接库(packet.dll),一个高层的,依赖于系统的库(wpcap.dll)。 ; WinPcap提供了以下功能:;三、哪些程序在使用WinPcap;特别地,大部分windows平台下有数据包捕获功能的软件都使用了winpcap作为编程接口,比较著名的有:;四、 WinPcap不能胜任的事情 ;一、编程环境设定;一、编程环境设定 ;二、获得设备列表 ; (获取设备列表) 我们展示了如何获取适配器的基本信息 (如设备的名称和描述)。 事实上,WinPcap提供了其他更高级的信息。 特别需要指出的是, 由 pcap_findalldevs_ex()返回的每一个 pcap_if 结构体,都包含一个 pcap_addr 结构体,这个结构体由如下元素组成:;;下面是参数 snaplen, flags 和 to_ms 的解释说明 ; 如果使用Hub/即基于共享网络的情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据)。如果某个工作站的网络接口处于混杂模式,那么它就可以捕获网络上所有的数据包和帧。
但是现代网络常常采用交换机作为网络连接设备枢纽,在通常情况下,交换机不会让网络中每一台主机侦听到其他主机的通讯,因此Sniffer技术在这时采用网络端口镜像技术进行配合。; pcap_loop()函数都有一个 回调 参数 : packet_handler 这个参数指定的函数将收到数据包。这个函数在每一个新的数据包从网络中到达时都会被Winpcap调用,数据包的首部一般有一些诸如时间戳,数据包长度的信息,还有包含了协议首部的实际数据。 注意:冗余校验码CRC不再支持,因为帧到达适配器,并经过校验确认以后,适配器就会将CRC删除,与此同时,大部分适配器会直接丢弃CRC错误的数据包,所以,WinPcap无法捕获到它们。 ; 本范例程序所实现的功能和效果和上一讲的非常相似 (打开适配器并捕获数据包)。;四、过滤数据包; 现在,我们可以捕捉并过滤网络流量了,那就让我们学???致用,来做一个简单实用的程序吧。;五、解析数据包; IP数据包的首部就位于MAC首部的后面。我们将从IP数据包的首部解析到源IP地址和目的IP地址。
处理UDP的首部有一些复杂,因为IP数据包的首部的长度并不是固定的。然而,我们可以通过IP数据包的length域来得到它的长度。一旦我们知道了
UDP首部的位置,我们就能解析到源端口和目的端口。 ;;IP报文头:;六、发送数据包;七、收集并统计网络流量; 在启动统计模式前,用户需要设置一个过滤器,以定义要监听的数据流。详细内容请参考 过滤表达式语法。如果没有设置过滤器,那么,所有的数据流量都将会被监听。; 接口描述符(the interface descriptor)开始工作在统计模式下。注意 pcap_open() 函数的第4个参数( to_ms ):它定义了统计的时间间隔。回调函数将在每一个to_ms时间,收到由驱动发来的计算好的采样数据。这些采样数据将通过回调函数的第2个和第3个参数传递,如下所示;简单总结;获得已安装设
备的高级信息;Thank You!
文档评论(0)