专栏首页王亚昌的专栏WinPcap在无线局域网下的使用

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,即以太网环境,可见该开发库为了方便用户的使用,刻意屏蔽(或简单处理)了帧类型,这样我们就可以像处理以太帧一样去处理了。

    此别,无线局域网环境下监听网络流时最好的工具就是Etheral的近亲Wireshark,它的功能也很强大,应该的是要在首选项中把所要监听的网卡设置为“非混杂模式”。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 对数据操作封装的一点心得

    在对数据进行操作时,可能需要读写name,于是我们写了一个接口,这个接口会实时更新缓存

    王亚昌
  • 路由查找算法优化心得

        项目代码中有一个基础类库,用于解析client到server的路由配置文件,同时管理长连接。路由配置文件格式大致如下所示:

    王亚昌
  • 合理使用const,慎用自运算

        项目最的出了几次运营事故,都是因为使用自乘、自加、自減运算,错改了非局部变量,导致将用户数据写溢出,最终只能进行回档处理。先给大家展示一下,漏出bug的...

    王亚昌
  • 干货 | 嘿!你和遗传算法的距离也许只差这一文(附C++代码和详细代码注释)

    这是数据魔术师的第5篇算法干货文 ▲ 一 什么是遗传算法? 遗传算法(Genetic Algorithm,简称GA)起源于对生物系统所进行的计算机模拟研究...

    用户1621951
  • 162. 矩阵归零先找为零的位置,再分别置零

    给定一个m×n矩阵,如果一个元素是0,则将其所在行和列全部元素变成0。 需要在原矩阵上完成操作。

    和蔼的zhxing
  • 线性筛莫比乌斯函数

    1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath...

    attack
  • insertionSoft(插入排序) 2.1-1 And 重写insertionSoft 2.1-2

    TrueDei
  • BZOJ1004: [HNOI2008]Cards(Burnside引理 背包dp)

      小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有 多少种染色方案,Sun很快就给出了答案.进一步...

    attack
  • 树的重心(个人模版)

    树的重心(树的重心定义为:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心) 1 #include<stdio.h> 2 #inc...

    Angel_Kitty
  • 每天一算: Number of Boomerangs

    五分钟学算法

扫码关注云+社区

领取腾讯云代金券