有一个solaris命令通过发出以下命令来ping通子网中的所有主机:
ping -s 255.255.255.255
在linux中有没有类似的东西? 我的意图是在ping所有主机之后find如下的一个mac地址:
arp -an | grep mac_address
你所做的只是ping广播地址。 ping的GNU / Linux版本要求您使用-b开关
-b允许ping一个广播地址
似乎并没有像Solaris- -s交换机那样直接相当于(它只是每秒钟都在testing并收集统计信息),但也许它被埋在了Linux手册页中 – 非常值得一读(可能是Solais的 )。
我也不会ping 255.255.255.255(这可能需要一段时间才能完成)我会使用我连接的networking的广播地址。
您可以随时尝试ping到您子网的广播地址。 这取决于你的本地networking设置,但你可以find它
$ ifconfig wlp4s0 | grep Bcast inet addr:192.168.199.47 Bcast:192.168.199.255 Mask:255.255.255.0
从Linux Pinging需要-b命令行开关,这是命令的一种预防措施。
但是,这并不能保证您将收集所有连接到您的子网的设备的所有MAC地址,因为它是用来实际回答发送给广播地址的ICMP ECHO请求的设备,即使这是在早期TCP / IP RFC(请参阅/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts是否设置为1)。
要更确定地覆盖所有地址,请单独使用ping命令
$ for ip in 192.168.199.{1..254}; do ping -c1 ${ip} & done
如果您使用nmap的特殊扫描types,或多或less会相同
$ sudo nmap -sn -PE -n 192.168.179.1-254
这也是我推荐的探测方式,因为你可以微调你询问客户MAC地址的方式。
尝试
ping -b 10.0.0.255
在ifconfig show广播地址是10.0.0.255的地方