我想使用C获取网络中所有活动IP设备的列表。
我将用一个例子解释我的问题。
示例:我在网络中有5台设备,其IP范围为
从我的申请表中我想获得此列表。我的平台是Linux,我正在使用C.目前我没有使用任何网络库。如果某些库提供了这样的实用程序,我就可以使用它。
请提供相同的建议。
答案 0 :(得分:0)
没有超快的直接逻辑可以知道哪些IP地址在线,但有一些技巧可以使用。
最常见的不需要任何特殊的东西只是尝试使用TCP连接到每个主机,而不是您期望的服务。
另一种技术可以先发送ICMP ping,但并非所有操作系统都能通过默认设置等来解决ping问题。
可以使用的最后一种技术(仅适用于本地网络,而不是通过网关)是在尝试发送ping之后,查看ARP表。如果存在有效的ARP条目,则即使未收到ping回复,主机也会处于联机状态。
答案 1 :(得分:0)
您可以使用 nmap(注意 /24
用于子网掩码,-sn
标志用于快速 Ping 扫描),如 https://www.howtogeek.com/423709/how-to-see-all-devices-on-your-network-with-nmap-on-linux/
sudo nmap -sn 192.168.4.0/24
您也可以进行广播 ping,但 nmap
会为您提供更多详细信息:
ping 192.168.178.255 -b