如何获取另一个AP的信标信息?

时间:2011-10-04 03:17:44

标签: wifi

假设我有两个AP。我希望一个AP监视另一个AP的信标信息,例如该AP是否正在缓冲流量,TSF以及信标中包含的所有内容。他们可以监控每一个。我发现使用iwlist扫描,我们可以获得其他AP的TSF,但我不知道即使我已经阅读了源代码,iwlist扫描也能获得信标信息。我的无线驱动程序是ath9k。

你有什么想法吗?如何从扫描的信标帧中提取一些信息?谢谢。

3 个答案:

答案 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/)。