使用 ping
- 优点
- 原生,不用安装软件
- 缺点
- 速度慢
下面的脚本列出 192.168.1.0/24 的所有主机,大概需要 255 秒
#!/bin/bash
function handler () {
echo "will exit"
exit 0
}
trap 'handler' SIGINT
for ip in 192.168.1.{1..255}
do
ping -W 1 -c 1 $ip &> /dev/null
if [ $? -eq 0 ]; then
echo $ip is alive
else
echo $ip is dead
fi
done
使用 fping
- 优点
- 速度快
- 缺点
- 需要安装 fping
# 安装fping
brew install fping # mac
yum install fping # centos
apt install fping # debian
我用的 fping 是 MacOS X, fping 的版本是 4.2
用 fping 去执行,同样 256 个主机,只需要 5-6s
fping -g 192.168.1.0/24 -r 1 -a -s