因为的的网段是 192.168.1.0/24 ,
所以我只需遍历 192.168.1.1 到 192.168.1.255 之间的所有ip然后进行 ping 就可以了:

test.sh:

#!/bin/bash
for ip in 192.168.1.{1..255} ;
do 
    ping $ip -c 2 &> /dev/null ;
    
    if [ $? -eq 0 ];
    then 
        echo $ip is alive
    fi
done

结果如下:

zifeiy@zifeiy-S1:~/文档$ bash test.sh 
192.168.1.1 is alive
192.168.1.3 is alive
192.168.1.4 is alive
192.168.1.6 is alive

也可以修改成并行ping的:
test.sh:

#!/bin/bash
for ip in 192.168.1.{1..255} ;
do (
        ping $ip -c 2 &> /dev/null ;
        
        if [ $? -eq 0 ];
        then 
            echo $ip is alive
        fi
    )
    done
wait

在 for 循环中执行了多个后台进程,然后结束循环并终止脚本。
wait命令hau等待所有的子进程结束后再终止脚本。

也可以使用 fpingsudo apt-get install fping),他的速度更快,用法如下:

fping -a 192.168.1/24 -g

fping -a 192.168.1.1 192.168.1.255 -g

(fping的用法暂时没有搞懂~)

相关文章:

  • 2021-07-01
  • 2022-12-23
  • 2021-07-30
  • 2021-08-17
  • 2021-10-21
  • 2021-06-26
  • 2021-11-20
  • 2022-12-23
猜你喜欢
  • 2021-12-02
  • 2021-12-31
  • 2022-02-02
  • 2021-12-30
  • 2021-04-06
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案