Linux Shell列出网络中所有的活跃主机

因为的的网段是 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的用法暂时没有搞懂~)

转载于:https://www.cnblogs.com/zifeiy/p/9434119.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值