linux+ping网络脚本,使用ping命令检测整个网段IP的网络状态的shell脚本(图文)

通过ping网段中的IP地址,根据返回的状态信息,判断主机的网络状态。

下面分享两个可以实现这个功能的shell脚本。

脚本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

笔者在自己的网络中测试的结果如下:

a_9256

如果以上输出全部为no的话,则可能主机上通过iptables禁用了ping。

脚本2,

复制代码 代码示例:

#!/bin/sh

# Ping网段所有IP

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

最后,介绍下用于ping多个域名的一段shell脚本。

通过ping命令,找出域名与IP地址的对应关系。

代码如下:

复制代码 代码示例:

#!/bin/sh

# filename ping.sh

# edit by www.jquerycn.cn

for a in `cat list`;do

ping -c 1 $a;

done

运行脚本:

#./test.sh

代码说明:

1,在运行脚本之前,创建list文件,里面写入要检测的域名,一行一个。

形如:

a.jquerycn.cn

b.jquerycn.cn

c.jquerycn.cn

...等等。2,-c 是ping的参数。-c 1 表示ping完成一次。

附,ping参考。

参  数:

-d 使用Socket的SO_DEBUG功能。

-c 设置完成要求回应的次数。

-f 极限检测。

-i 指定收发信息的间隔时间。

-I 使用指定的网络界面送出数据包。

-l 设置在送出要求信息之前,先行发出的数据包。

-n 只输出数值。

-p 设置填满数据包的范本样式。

-q 不显示指令执行过程,开头和结尾的相关信息除外。

-r 忽略普通的Routing Table,直接将数据包送到远端主机上。

-R 记录路由过程。

-s 设置数据包的大小。

-t 设置存活数值TTL的大小。

-v 详细显示指令的执行过程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值