- #!/bin/bash
- while true; do
- for I in {100..120};do
- ping -c 2 -w 2 192.168.0.$I &>/dev/null
- if [ $? -eq 0 ];then
- echo -e "\033[32;40m 192.168.0.$I is UP.\033[0m"
- else
- echo -e "\033[32;40m 192.168.0.$I is DOWN.\033[0m"
- fi
- done
- break
- done
- 执行结果
- [[email protected]/* */~]# sh ping.sh
- 192.168.0.100 is UP.
- 192.168.0.101 is DOWN.
- 192.168.0.102 is UP.
- 192.168.0.103 is DOWN.
- 192.168.0.104 is UP.
- 192.168.0.105 is DOWN.
- 192.168.0.106 is DOWN.
- 192.168.0.107 is DOWN.
- 192.168.0.108 is DOWN.
- 192.168.0.109 is UP.
- 192.168.0.110 is DOWN.
- 192.168.0.111 is DOWN.
- 192.168.0.112 is DOWN.
- 192.168.0.113 is DOWN.
- 192.168.0.114 is UP.
- 192.168.0.115 is UP.
- 192.168.0.116 is DOWN.
- 192.168.0.117 is DOWN.
- 192.168.0.118 is UP.
- 192.168.0.119 is DOWN.
- 192.168.0.120 is UP.
实现方案利用 ping
ping 命令参数
-d 使用 Socket 的 SO_DEBUG 功能。
-c <完成次数> 设置完成要求回应的次数。
-f 极限检测。
-i <间隔秒数> 指定收发信息的间隔时间。
-I <网络界面> 使用指定的网络界面送出数据包。
-l <前置载入> 设置在送出要求信息之前,先行发出的数据包。
-n 只输出数值。
-p <范本样式> 设置填满数据包的范本样式。
-q 不显示指令执行过程,开头和结尾的相关信息除外。
-r 忽略普通的 Routing Table,直接将数据包送到远端主机上。
-R 记录路由过程。
-s <数据包大小> 设置数据包的大小。
-t <存活数值> 设置存活数值 TTL 的大小。
-v 详细显示指令的执行过程。
来源: http://www.bubuko.com/infodetail-2144308.html