我已阅读这些Getting Started with WiFi on Android。实现了Marakana的基本wifi功能教程。
但我的问题是:有没有办法找到连接到wifi网络的用户数量?
如果可以,请分享一个或多个链接。
如果不能这样做,请提供一些细节,为什么不呢?
谢谢,
答案 0 :(得分:0)
获取网络上的计算机列表本质上是一个不可靠的主题,无线或有线。
有三种常见方法:发现协议,扫描和被动侦听。
发现协议(例如来自UPnP框架的LLDP)对于支持它们的设备非常有效。偶尔也适用于不适用的设备。如果防火墙阻止它们,或者交换机或wifi接入点配置为不允许设备之间的流量,它们根本不起作用。
扫描意味着,向每个可能的IP地址发送探测(例如ping)。这是许多入侵检测设备阻止的事情,许多wifi接入点也会阻止您向其他设备发送ping。此外,在IPv6中扫描是完全不可行的,因为每个网络都有数十亿的IP地址可供探测,而不是IPv4中通常的254个。
被动侦听意味着,只需关注网络上的第2层流量,并根据ARP流量(或所有流量)构建MAC地址表。只有拥有集线器的有线网络才能可靠地工作 - 交换机不会在所有地方转发所有第2层流量(尽管您最需要的ARP消息通常是广播和可用的)。 WiFi隔离还可能阻止您获得足够的第2层流量。