假设我有两个AP。我希望一个AP监视另一个AP的信标信息,例如该AP是否正在缓冲流量,TSF以及信标中包含的所有内容。他们可以监控每一个。我发现使用iwlist扫描,我们可以获得其他AP的TSF,但我不知道即使我已经阅读了源代码,iwlist扫描也能获得信标信息。我的无线驱动程序是ath9k。
你有什么想法吗?如何从扫描的信标帧中提取一些信息?谢谢。
答案 0 :(得分:3)
如果您想要嗅探和分析信标,您需要在界面上设置监控模式 并将通道设置为AP通道。
您可以使用iw实用程序执行此操作,例如
iw wlan0 set monitor otherbss
iw wlan0 set channel X
要弄清楚AP频道只是用
之类的东西进行扫描iw wlan0 scan
如果您的硬件和驱动程序支持监控模式,您应该能够运行Wireshark 并看到AP的信标。 要编写一个解析信标并监视事件的实用程序,可以使用libpcap 或者在python中绑定它,例如。
答案 1 :(得分:0)
wpa_supplicant
是广泛使用的wifi中间件,提供BSS命令来获取TSF和IE等AP信息。
使用wpa_cli
,您可以将命令发送到wpa_supplicant
。
以下是利用wpa_cli
获取tsf值的示例。
(假设接口名称为wlan0)
wpa_cli -iwlan0 scan
Wpa_cli -iwlan0 scan_result
# (Find out bss id of APs you want to get tsf.)
wpa_cli -iwlan0 bss "bss id"
如果您想在代码中执行此操作,请参阅Internet上的wpa_ctrl.c
。
答案 2 :(得分:0)
您需要拥有支持监控模式和了解802.11帧的无线网卡。
说过像libpcap和libtins这样的库可以让你轻松捕获并对数据包执行分析或操作。
我使用了libtins(http://libtins.github.io/)并建议你看看它。它是一个易于使用的C ++库,并以信标帧本身为例(http://libtins.github.io/examples/beacon-display/)。