通过ping检测整个网段内的ip网络连接状态,具体的脚本实现如下;
1.while循环实现
#!/bin/bash
# Ping网段所有IP
ip=1 #通过修改初值
while [ $ip != "254" ];
do
#yes正常,no主机不存在或不正常 利用了逻辑与或非的短路功能
ping 192.168.0.$ip -c 2 | grep -q "ttl=" && echo"192.168.0.$ip yes" || echo "192.168.0.$ip no"
ip=`expr "$ip" "+" "1"`
done
2.for循环实现
#!/bin/bash
# Ping网段所有IP
ip="192.168.0."
for i in `seq 1 254`
do
ping -c 2 $ip$i |grep -q 'ttl=' && echo "$ip$i yes"|| echo "$ip$ino"
#yes正常,no主机不存在或不正常
done
运行脚本结果输入如下所示: