通过ping检测整个网段IP的网络状态脚本

要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍几种,如下:

脚本1

#!/bin/sh

# Ping网段所有IP

# 2012/02/05

ip=1 #通过修改初值

while [ $ip != "254]; do

#yes正常,no主机不存在或不正常

ping 192.168.0.$ip -c 2 | grep -q "ttl=" && echo "192.168.0.$ip yes" || echo "192.168.0.$ip no"

ip=`expr "$ip" "+" "1"`

done

输出结果:

192.168.0.1 yes

192.168.0.2 no

192.168.0.3 no

192.168.0.4 no

192.168.0.5 yes

192.168.0.6 no

192.168.0.7 yes

...

脚本2

#!/bin/sh

# Ping网段所有IP

# 2012/02/05

ip="192.168.0."

for i in `seq 1 254`

do

  ping -c 2 $ip$i | grep -q 'ttl=' && echo "$ip$i yes"|| echo "$ip$i no"

  #yes正常,no主机不存在或不正常

done

输出结果:

192.168.0.1 yes

192.168.0.2 no

192.168.0.3 no

192.168.0.4 no

192.168.0.5 yes

192.168.0.6 no

192.168.0.7 yes

 

①先用一个文件统计ip地址(当然这个文件也是用cat,grep,awk一系列命令来统计出来的),保证每一行是一个ip地址。

②编写shell脚本来统计所有ping不通的IP

#!/bin/bash

test -e result || touch result

while read ipaddr

do

ping $ipaddr -c 2

if [ $? -eq "0" ]

then

echo ping success

else

echo $ipaddr>>result

fi

done < ystest2

脚本中使用了两个文件:

ystest2:即保存了所有IP地址的输入文件

result:即保存了所有ping不通的IP地址的输出文件

 

 

标签: 无
返回文章列表 文章二维码
本页链接的二维码
打赏二维码