linux 局域网探测
2021-10-26阅读 41

linux 局域网探测

笔者:李晓辉

如果我们身为工程师或网络管理员,那么我们肯定遇到过这样的情况,我们临时要用到某个Ip地址,或我们要知道192.168.1.0这个网络中所有的地址哪个被用掉了,你会怎么做呢?还有,你要检测一堆服务器中哪个服务器是正常运行的,哪个已经Down掉了。一个服务器一个服务器去查?噢no!!!这是个什么样的工作量啊!!关键是这样做太繁琐,下面我们来看个实例,用脚本快速探测一段网络中哪个服务器是正常运行的,哪个是Down掉了的。

下图就是我们扫描所需要的代码了

我们来解释一下

for num in {1..100}这个还是一个赋值语句,num等于1100

host=192.168.2.$num这个的意思是

host=192.168.2.1……192.168.2.100

ping -c2 $host &>/dev/null这个就更简单了,ping  -c2是说ping两次$host地址($host等于192.168.2.1.。。100),然后不管通了没有,全部重定向到null,就是说丢弃

    if [$?=0]; then

 

       echo "$host is UP"

 

     else

       echo "$host ip Down"

 

    fi

done

这个的意思就是说,如果$?=0,那么显示$host is up,这里的$host就是指单个的了,如果$?不等于0,那么显示$host is down

其他的好理解,那什么叫$?,这是个神马玩意儿??

$?linux中的一个对于上次执行结果的一个反馈,如果上次执行时成功的,那$?就是0,如果不成功,就是1,我们来试试

 

如下图,我们执行了ls命令,成功的显示了/下的文件,那么$?就是0

 

我们再来看这个,ping 10.0.0.1是不通的,没执行成功,那$?就是1

 

好了,理解完我们来运行一下