有谁知道如何计算您已连接的网络的 802.11 信标数量?无论是接入点还是 Adhoc 网络都没关系,因为两者都会发出 802.11 信标。
我是从Linux平台的角度问这个问题的。我一直在使用 Adhoc 网络和 Linux 设备,并且需要一种方法来确定网络中的节点是否处于活动状态,而无需编写心跳服务。我知道接入点会定期发出 802.11 信标供客户端检测它们,并且想知道 Adhoc 网络客户端是否有一些相似之处。 (有与 ESSID 和 BSSID 相关的 Adhoc 功能,建议客户端必须宣传 Adhoc 网络)
我一直通过使用 Kali Linux 和 Alfa Wifi 适配器来监控 802.11 无线流量来测试这个理论。 (不是典型的设置,我只想对连接网络的信标进行计数)然后我在 2 个 Linux 系统之间设置一个 2 节点 Adhoc 网络。 airodump-ng 注意到客户端生成了大量帧。诚然,我没有设置 iptables 规则来阻止所有出站 TCP/UDP,因此该活动可能是某些试图上网的后台进程。
启动 Wireshark 后,我注意到一些(如果不是全部)帧是 802.11 信标!它们的发射非常有规律,比如每秒 2-5 个信标。
我不知道 802.11 Adhoc 是否必须具备某些功能或配置才能发出这些信标,或者是否可以对其进行调整,但它们确实存在。
可以编写一个函数来对连接的 Adhoc 网络的信标进行计数,如果其中一个客户端停止发送信标,您可以假设与该客户端的通信已中断。
问题是我需要一种方法来查看/计算我已连接的网络的 802.11 信标,而无需特殊的 wifi 适配器或笔测试工具。有什么建议么?谢谢!
答案1
可以用wireshark
您可以在wireshark中使用信标过滤器,例如
wlan.bssid==mac_address && wlan.fc.type_subtype eq 8
在哪里
mac_address
是发射信标的 AP 的 MAC 地址
wlan.fc.type_subtype eq 8
:这将仅捕获来自此 mac 的所有信标帧
此外,wireshark 还有一个时间列,以秒为单位显示收到信标的时间。这可以很好地指示时间流逝。
递归计数可能是一个问题,但是......
执行过滤器后,您可以获得信标过滤器的计数。
在 Wireshark 中转到:
Statistics ----->Summary
这会给你一个计数当你检查时。每次您想要查看更新的计数时,您都必须返回到摘要。