0
点赞
收藏
分享

微信扫一扫

测试某个网段内所有主机的连通性

编程说明:

本文将介绍两种方法编写shell脚本来进行某一个网段内所有主机连通性的检测,主要用到的还是for循环语句的方式。


方法一:

#!/bin/bash

#功能描述(Description):测试某个网段内所有主机的连通性

net="194.168.4"

for i in {1..254}

do

ping -c2 -i0.2 -W1 $net.$i &>/dev/null

if [ $? -eq 0];then

echo "$net.$i is up."

else

echo "$net.$i is down."

fi

done


方法二:

第二种方法为使用seq快速生成字母序列。因为seq是一个命令,而此时需要的是命令的执行结果,所以需要使用$()或``对命令进行扩展,只获取命令执行的结果。

#!/bin/bash

#功能描述:测试某个网段内所有主机的连通性

#可以使用$()或者``对命令进行扩展

net="192.168.4"

for i in $(seq 254)

#for i in `seq 254` 两种写法都是只获取seq命令的结果

do

ping -c2 -i0.2 -W1 $net.$i &>/dev/null

if [ $? -eq 0 ]; then

echo "$net.$i is up."

else

echo "$net.$i is down."

fi

done

                                                                                                                                                               

举报

相关推荐

0 条评论