检测一个网段内存活的主机

场景

网络管理有时候需要知道某网段内那些ip被使用或者有哪些主机在线。

应用实践

用脚本实现

快速检测一个网段内的主机或ip存活状态,用脚本实现的一种方法有更好的方法,效果非常好,并行执行速度快。

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash 
for ip in 192.168.3.{100..150};
do
(
ping -c1 $ip &> /dev/null 2>&1
if \[ $? == 0 \]; then
echo "$ip is UP"
else
echo "$ip is down"
fi
)&
done wait
拓展思维

上面脚本是检测的192.168.3网段,可以换成任意目标网段,也可以稍加修改作为参数传入。脚本的结构 ( )& wait 将循环体放进()内,可以使()内的命令行作为子shell来执行,而&可以使之脱离当前线程,在后台继续运行。这个结构可以达到并行执行效果,加速程序运行。想要等到所有的子进程结束后再终止脚本,使用wait命令。注意wait放到最后。 这种结构还可以用到其它的场景中。

----------------本文结束 感谢阅读----------------