我正在学习C语言中的套接字编程,但是我无法找到任何关于如何获取我的WLAN网络中所有连接设备列表的信息(我使用Linux)。
是否有人可以提供相关信息或者告诉我可以在哪里开始学习呢?
您需要检查无线接入点(Wifi路由器)上的所有关联。大多数Wifi路由器都有一个Web界面,其中显示了所有已关联的设备。
如果您可以访问AP的telnet
/ssh
/console
,则根据您的wifi硬件和驱动程序尝试以下任一方法。
Broadcomm无线网卡:
iw assoclist
Atheros 无线网卡:
wl_atheros assoclist
iwlist(8)
,这是一个Linux程序,可从无线接口获取信息。iwlist [interface] scan
或者
iwlist [interface] ap/accesspoint/peers
查看ARP缓存。 ARP代表地址解析协议,这是机器将IP地址转换为硬件地址的方法。
没有真正通用的方法可以获取所有网络设备的列表,但ARP接近实现这一目标。
对于您子网中的每个地址进行ping或仅打开和关闭与已知端口的连接,可以快速填充ARP缓存...
192.168.1.0/24
,则广播IP地址将为192.168.1.255
,在Linux上的命令是ping -b 192.168.1.255
。然后,您可以在程序中获取命令结果并处理它以提取其他连接设备的IP地址。
dmesg(1)
获取该信息。 - HAL