winpcap使用

    xiaoxiao2021-08-25  72

     winpcap

    winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它用于windows系统下的直接的网络编程。

    Winpcap提供了一个强大的编程接口,它很容易地在各个操作系统之间进行移植,也很方便程序员进行开发。

    很多不同的工具软件使用Winpcap于网络分析,故障排除,网络安全监控等方面。Winpcap特别适用于下面这几个经典领域:

    1、网络及协议分析

    2、网络监控

    3、通信日志记录

    4、traffic generators

    5、用户级别的桥路和路由

    6、网络入侵检测系统(NIDS)

    7、网络扫描

    8、安全工具

    Winpcap有些方面不能做。它不依靠主机的诸如TCP/IP协议去收发数据包。这意味着它不能阻塞,不能处理同一台主机中各程序之间的通信数据。它只能“嗅探”到物理线路上的数据包。因此它不适用于traffic shapers,QoS调度,以及个人防火墙

    开发包下载

    http://www.winpcap.org/devel.htm

    加载开发包

    右键项目->配置属性->VC++目录->包含目录(加入include文件)和库目录(lib文件)

    项目-属性,中的“链接器”-“输入”-附加依赖项“中添加lib文件的全名:wpcap.lib.

    或者代码中加入:#pragmacomment(lib,"wpcap.lib")

    NPF

    内核空间数据包过滤器(Netgroup Packet Filter, NPF) ,一个底层动态链接库(Packet.dll)和一个高层独立于操作系统的动态链接库(wpcap.dll)。

    NPF:为了能够访问网络上传输的原始数据,数据包捕获系统需要绕过操作系统的协议栈。这就需要有一部分程序运行在操作系统的内核中,只有这样才能与网络接口驱动直接交互。在WinPcap中,与操作系统密切相关的是一个名为NPF的设备驱动程序,同时对不同版本的操作系统提供了不同版本的驱动程序。这些驱动程序提供了数据包捕获与发送的基本功能,同时提供了一个可编程的数据包过滤系统、一个网络监视引擎等高级功能。

    动态链接库:为了让应用程序能够使用内核驱动提供的功能,数据包捕获系统必须导出相关的接口。对此,WinPcap提供两个不同层次的动态链接库:Packet.dll和wpcap.dll。 Packet.dll提供底层的API,用来直接访问驱动程序的函数,用来提供独立于微软公司不同操作系统的编程接口。 wpcap.dll库导出了更强大、更高层的捕获函数接口,具有与UNIX捕获库libpcap的兼容性。这两个库可使数据包的捕获独立于底层的网络硬件与操作系统。

    启动NPF

    net start npf 

    转载请注明原文地址: https://ju.6miu.com/read-677061.html

    最新回复(0)