使用ping

  • 优点
    • 原生,不用安装软件
  • 缺点
    • 速度慢

下面的脚本列出 192.168.1.0/24的所有主机,大概需要255秒

  1. #!/bin/bash
  2. function handler () {
  3. echo "will exit"
  4. exit 0
  5. }
  6. trap 'handler' SIGINT
  7. for ip in 192.168.1.{1..255}
  8. do
  9. ping -W 1 -c 1 $ip &> /dev/null
  10. if [ $? -eq 0 ]; then
  11. echo $ip is alive
  12. else
  13. echo $ip is dead
  14. fi
  15. done

使用fping

  • 优点
    • 速度快
  • 缺点
    • 需要安装fping
  1. # 安装fping
  2. brew install fping # mac
  3. yum install fping # centos
  4. apt install fping # debian

我用的fping 是MacOS X, fping的版本是4.2

用fping去执行,同样256个主机,只需要5-6s

  1. fping -g 192.168.1.0/24 -r 1 -a -s