c语言winpcap类库

winpcap

winpcap是什么

winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它用于windows系统下的直接的网络编程。
说白了,winpcap设计网络底层相关内容,熟练运用winpcap库进行编程,可以对网络底层的数据包进行捕捉收集。且winpcap是c环境下的一个库文件,运用起来对于我这种编程菜鸡比较友好。

winpcap的下载与配置

在https://www.winpcap.org/install/default.htm下载驱动后,在http://www.winpcap.org/devel.htm中下载开发包(一个压缩包),将解压后的LIB文件夹中找到wpcap.lib和Packet.lib文件添加到编译器路径中后,方可使用。
注:对于有关网络的c语言编程中还常用到ws2_32库文件,这里不加以赘述,建议下载后,与winpcap一样加入编译器路径中。

winpcap的使用

头文件包含:# include “pcap.h”
常用指令及函数:
(int型)pcap_findalldevs(pcap_if_t **,char *) 作用:用于获取网卡的列表
(void型)pcap_freealldevs(pcap_if_t *) 作用:与上个函数配套使用,用此函数free释放上函数所申请的内存空间。
(pcap_t型) *pcap_open_live(const char * ,int,int,int,char )作用:被用来得到一个包抓取得描述符。
(int型)pcap_loop(pcap_t *,int,pcap_handler,char *)作用:捕获数据包,不会相应pcap_open_live函数中的超时时间。
(int型)pcap_dispatch(pcap_t *,int ,pcap_handler,u_char *)作用:捕获数据包。可以不被阻塞。
(int型)pcap_compile(pcap_t *,struct bpf_program *,char *,int,buf_u_int32) 作用:编译一个过滤设备,它通过高层的boolean型变量和字串产生一系列的能够被底层驱动所解释的二进制编码。boolean表示语法能够在这个文件的过滤表示语法中找到。与pcap_setfilter函数配合使用。
(int型)pcap_setfilter(pcap_t,struct bpf_program *)作用:用来联系一个内核驱动上过滤的过滤器,这是所有网络数据包都将流经过滤器,并拷贝到应用程序中。
还有pcap_lookupnet函数可用于获取网卡的网络号和子网掩码。(并不常用)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值