查找本地子网上所有启用 ICMP 的主机

查找本地子网上所有启用 ICMP 的主机

我是 255.255.255.0 子网中的主机 - 符合 RFC1918。

有哪些方法可以(不迭代 254 个地址)映射我本地子网中的 IPEndPoint?

答案1

nik 很接近;您确实需要 ping 广播,但并非所有系统都会直接响应。

注意广播地址不同于你的网络地址。如果你的 IP 是192.168.1.42,你的网络掩码是255.255.255.0,那么你的网络地址是192.168.1.0,你的网络广播地址是192.168.1.255

  1. 对网络进行 Ping 广播:

    • Linux:ping 192.168.1.255 -b
    • 操作系统:ping 192.168.1.255

  2. 检查 ARP 缓存中的响应:

    • Linux:arp
    • 操作系统:arp -a

奇怪的是,当我 ping 广播地址时,我收到了网络上一台 Win-7 机器的响应,但没有显示任何其他机器的响应。我的网络上有 4 台设备(路由器、XP、Win7、Debian);arp当我在 Debian 和 WinXP 系统上运行上述命令时,所有 3 台远程机器都正确列在输出中。

答案2

如果你发送广播 ping,

ping 网络地址 -b 

network_address您的255.255.255.0等效 C 类网络在哪里。
所有端点都会回复您。
然后您只需从输出中提取唯一的单个响应 IP 地址。


这意味着,如果您的 IP 地址位于192.168.1.42C 类网络中。
您可以执行ping 192.168.1.0 -b并查看(例如)一分钟的输出。
网络中所有连接的端点都将回复此广播地址。

相关内容