设置 ping 的通配符掩码

设置 ping 的通配符掩码

有没有办法执行像ping 10.0.0.0 0.255.255.255(通配符掩码)这样的命令,而无需安装程序,或者以类似的方式 ping 特定网络/子网内的每个节点?

我看到了类似ping -b广播ping的东西,但是它似乎不起作用(可能是因为路由器不接受它,但我不确定)。

答案1

ping不会使用网络掩码或通配符。

你可以对子网的广播地址进行泛洪 ping 并监控回复,尽管许多路由器会拒绝通过广播路由 ICMP,因为这通常被视为滥用流量。另外,只有 root 才能以零间隔进行洪泛。

例如:

ping -fb <BROADCAST ADDRESS>

相反,你真的应该使用网络映射以友好的方式。

预计到达时间:如果你想要的是节点回复列表,我们可以变得更聪明一点:

ping -b -c 2 -i 20 <BROADCAST ADDRESS>

允许-bping 广播地址,-c 2告诉 ping 发送两次 ping,-i 20告诉 ping 在两次 ping 之间等待二十秒。

这样,您将获得一个几乎即时的回复列表,并在终止前等待 20 秒,然后是流量统计信息。之所以要发出两个 ping 回应请求,是因为如果您设置了-c 1,ping 将在收到第一个响应时终止。我们在两次请求之间设置了 20 秒,以便回复列表具有一定的可读性。这是一个 hack,但它确实有效。

从这里,您可以通过管道来抑制统计数据输出head -n-4,然后执行有用的awk技巧sortuniq来构建有用的单行报告。

相关内容