要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,一种为单进程,一种为多进程。
ping单进程检测(挨个处理)
#!/bin/bash
read -p "请输入IP网络位:" ip #从键盘输入,注意ip前面要有个空格
for i in $(seq 1 254) #seq用于生成数字1~254
do
{
ping $ip.$i -c1 -s1 2>&1 1>/dev/null && #$ip和$i是两个传入参数代表网络位和主机位。2>&1 将标准>输出错误重定向标准输出到屏幕,/dev/null代表linux的空设备文件,也就>是将标准输出1重定向到/dev/null中,
echo -e ping $ip.$i 是 "\033[32;49;1m通的! \033[39;49;0m" ||
echo -e ping $ip.$i 是 "\033[31;49;1m不通的! \033[39;49;0m" #这>里显示结果,""里代表字符串颜色
}
done
echo "扫描检测已结束。"
ping多进程检测(使用'&'+wait 实现)
#!/bin/bash
read -p "请输入IP网络位:" ip #从键盘输入,注意ip前面要有个空