当前位置:  开发笔记 > 编程语言 > 正文

解析WiFi数据包(libpcap)

如何解决《解析WiFi数据包(libpcap)》经验,为你挑选了0个好方法。

我一直在研究如何让一个OpenWRT路由器记录WiFi探测请求到MySQL数据库(它存储每个探测请求数据包的MAC地址和RSSI信息以及其他特定于路由器的数据).

在研究了libpcap之后,我已经能够拼凑出一个基本的小程序,只需使用过滤器表达式('wlan subtype probe-req')在监视器接口(mon0)上嗅探数据包,然后输出原始数据包十六进制 有了libpcap在线提供的信息,这部分相当简单.

现在我就陷入困境:如何解析WiFi数据包以检索我正在寻找的信息(RSSI和源MAC地址)?

要说清楚,我不是要求代码去做(虽然我不会抱怨,如果你想提供一些:D).我只是在寻找某种指导来理解哪个字节是哪个 - 如果你愿意的话,那就是WiFi数据包路线图.

有一些很好的教程可用于解析通过以太网进入的数据包,但是我无法找到任何可以帮助解析与WiFi特定相关的标头.我假设这将是一个非常简单的过程 - 只需抓取RSSI和源MAC的相关字节 - 但同样,我还没有找到任何关于哪个字节的文档.

我知道这已经完成了,但我会说实话:在查看tcpdump的源代码时,我完全迷失了.

那么,有没有人知道如何解析WiFi数据包的良好资源?

干杯

编辑:更具体的答案

RSSI位于RadioTap标题中(嗯,在Linux上).使用radiotap-parser.c以及它所依赖的文件(在与我链接的文件相同的目录中找到)将RSSI从数据包中拉出是相当简单的.如果有人在使用radiotap-parser.c时遇到问题,请随时与我们取得联系.

radiotap函数使得拉出源MAC地址非常简单,因为radiotap头结构包含radiotap头(it_len)的长度,它是可变的.因为我只解析具有固定长度的探测请求(在这里查看第17页),所以只需要指向一个指针packet + it_len + 10(源MAC地址在MAC帧开始后10个字节开始,从哪里开始) radiotap标题结束).从该指针开始的6个字节addr2位于802.11帧中(同样,请参见此处的第17页).

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有