网卡抓包利用beacon帧测量wi-fi热点功率
前言
因为项目需要比较精确和快速的获取wifi热点信号接收功率,网上教程不够全面,在此整理。
最开始项目方案打算用hack-rf直接采集无线信号计算功率,但是工作地点热点过多,无法准确辨认自己的无线路由器发射的信号,遂采用笔记本无线网卡抓包的方案。
beacon发送速率和模式
Beacon帧是所有基于802.11协议的无线热点用来建立连接,宣告自己存在的管理帧。Beacon帧的发送时间周期稳定,信号强度大,调制方式简单基本,且一般会包含ESSID(wifi热点的名称)信息,比较方便进行身份识别。
- 在2.4Ghz频段,一般使用802.11b协议,以1mpbs的速度,DSSS直接序列扩频的方法,调制发送beacon,兼容11g。
- 在5Ghz频段,使用802.11a,6mbps的模式发送beacon,6bmps是11a的最低速率啦。
beacon的发送间隔一般为100ms,但是可以在路由器的设置界面设置。
使用iwconfig查看网卡设备信息
~$ iwconfig
可以查看网卡工作模式,发射功率,接收信号功率和连接速度(连接速度由网卡物理层协议自适应调整,beacon 等管理帧一般工作在802.11协议最原始协议的最低速度,方便建立)
有网络连接时一般工作在Manged 模式。
首先利用iw关闭网卡进入 monitor模式。
查看网卡支持模式,和接口名称
iw list
添加一个虚拟网卡接口,将下面指令的wlan0改为自己的网卡接口(interface)名称,mon0为虚拟网卡的名称。
sudo iw dev wlan0 interface add mon0 type monitor
启动虚拟网卡
sudo ifconfig mon0 up
若抓包完成后,希望删除虚拟接口