向所有节点广播 ARP 查询?

向所有节点广播 ARP 查询?

我正在尝试广播 ARP 查询。我想通过此查询更新系统中每个节点的 ip 和 mac 地址。这样我就可以输入 $arp 并查看我网络上的所有节点及其对应的物理地址。

我已尝试过$ arping,但没有成功。

rafael@rcepeda:/var/www/html$ arping -s 192.168.1.9 -I wlan0 192.168.1.255
ARPING 192.168.1.255 from 192.168.1.9 wlan0
^CSent 37 probes (37 broadcast(s))
Received 0 response(s)

ifconfig 用于我的接口

inet addr:192.168.1.9 Bcast:192.168.1.255 Mask:255.255.255.0

定期广播 ping

rafael@rcepeda:/var/www/html$ ping -b 192.168.1.255
WARNING: pinging broadcast address
PING 192.168.1.255 (192.168.1.255) 56(84) bytes of data.
^C
--- 192.168.1.255 ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5040ms

100% 数据包丢失

我的路由器不允许我这样做吗?

答案1

大多数 Linux 发行版默认忽略 ICMP 回显广播(内核参数net.ipv4.icmp_echo_ignore_broadcasts)。

据我所知,Windows 也不响应 ICMP 回显广播。也许可以通过修改注册表来覆盖它,但我暂时不知道。

这在RFC 1122 标准文档

我建议使用bash这样的脚本:

for i in 192.168.1.{1..254} 
do
  ping -c1 $i > /dev/null || true
  arp -an $i
done

相关内容