最近公司任务要做无线定位,要想无线定位就要知道定位所需要的参数如何通过无线获取。
强大的百度让我搜索到几篇具有指导意义的博客。
https://blog.csdn.net/sunhaobo1996/article/details/72597921?spm=1001.2014.3001.5501
https://blog.csdn.net/subfate/article/details/53170546
https://github.com/769484623/WiFiProbe
通过他们的描述我明白了如何获取无线报文和解析无线报文。
获取报文主要依赖wifi芯片是否支持监听模式也就是monitor模式。
首先把芯片设置为监听模式,然后通过开源库PCAP库抓取报文,
最后通过RADIOTAP解析库解析报文。最终上送定位服务器。
我现在处于研究阶段,先考虑如何抓到报文。开始我搞了好多尝试,比如直接通过wireshark抓包,我虽然能抓取到报文,但是报文的格式无法和RADIOTAP解析库匹配,并且无法使网卡处于监听模式。
抓到的报文都是tcp报文,抓取不到无线报文。
后面我换commview for wifi 抓到的报文也不是
最终解决方案为通过tcpdump 直接在开发板上抓包。先把网卡配置为监听模式,然后指定网卡抓包,把报文导出来,然后通过wireshark打开,如下
这份报文是让我比较满意的一份报文,他和解析库完全对的上。剩下就是撸解析库的代码。
解析库代码如下