WinPcap-->无线(整理)

本文介绍了WinPcap在无线局域网环境下的应用,特别是在不设置混杂模式时如何捕获数据帧。通过调用pcap_open_live()函数并设置promisc参数为0,可以获取到802.11数据帧,并且这些帧在处理时与以太帧格式相同。此外,推荐在使用Wireshark进行无线网络监听时,取消“混杂模式”选项以获得更好的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 http://blog.youkuaiyun.com/nellson/archive/2007/07/02/1675630.aspx

WinPcap在无线局域网下的使用

 

    最近在做网关方面的项目,用到了WinPcap开发库去获得数据帧,这个开发库功能很强大,但是在无线局域网环境下使用时有一些不同,下面就WinPcap的使用心得和体会汇总一下。

    大家都知道WinPcap是为了满足程序开发的需要从UNIX下的LibPcap库移植过来的,因而是open and free的开发库,所以大家可以放心使用不用担心版权问题。

    在以太网环境下将网卡设置在混杂模式下很容易获得整个物理链路上的数据帧,即你可以监听整个网段的主机数据包,可以实现Sniffer的功能,但是在无线局域网环境下(WLAN, IEEE802.11协议族),设置为混杂模式却不能嗅获到数据包,为了解决这个问题我也尝试了很多方面,在一次偶然的情况下看到了一种解决方法,那就是不设置为,打开函数  pcap_open_live(const char* device, int snaplen, int promisc, int to_ms, char *ebuf ) 中的第三项设置为0即可获得本机的所以数据帧,这个时候用函数获得数据包时会发现,得到的802.11数据帧与以太帧,即802.3数据帧格式完全一样,而且用pcap_datalink() 去获得网络类型时会发现结果是DLT_EN10MB,即以太网环境,可见该开发库为了方便用户的使用,刻意屏蔽(或简单处理)了帧类型,这样我们就可以像处理以太帧一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值