PING (Packet Internet Grope),因特网包探索器
检测网络的连通性:ping可以测试计算机名和计算机的 ip 地址,验证与远程计算机的连接,通过将 icmp 回显数据包发送到计算机并侦听回显回复数据包来验证与一台或多台远程计算机的连接,该命令只有在安装了 tcp/ip 协议后才可以使用。
备注:
TTL:生存时间
指定数据包被路由器丢弃之前允许通过的网段数量。
TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。转发 IP 数据包时,要求路由器至少将 TTL
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
补充说明:
执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
备注:
ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
-a 将地址解析为计算机名。
-d 使用Socket的SO_DEBUG功能。
-c<完成次数> 设置完成要求回应的次数。
-f 极限检测。
-i<间隔秒数> 指定收发信息的间隔时间。
-I<网络界面> 使用指定的网络界面送出数据包。
-l<前置载入> 设置在送出要求信息之前,先行发出的数据包。
-n 只输出数值。
-p<范本样式> 设置填满数据包的范本样式。
-q 不显示指令执行过程,开头和结尾的相关信息除外。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-R 记录路由过程。
-s<数据包大小> 设置数据包的大小。
-t<存活数值> 设置生存时间TTL的大小。
-v 详细显示指令的执行过程。
小解其意:
64 bytes:表示本次传送的ICMP包的大小,此值为预设值
icmp_seq=0:ICMP所侦测的次数,第一次为0,第二次为1,依次类推
ttl=52:生存时间
time:响应时间
小解其意:其中 –c count 次数,也就是ping的次数,-i interval 间隔 ,每次ping之间的时间空格
作者:毕小朋 博客: http://www.wirelessqa.com 微博 : http://weibo.com/wirelessqa 邮箱:[email protected]
由于公ping一次,而且只sleep1秒,所以ping的选项为:-c1 -w1,假设你的电脑所在的网络为:192.168.1.*,所以shell命令这样写(vi ping.sh):
01 |
#!/bin/bash |
02 |
for siteip in $( seq 1 254) do |
03 |
site= "192.168.1.${siteip}" |
04 |
ping -c1 -W1 ${site} &> /dev/null |
05 |
if [ "$?" == "0" ]; then |
06 |
echo "$site is UP" |
07 |
else |
08 |
echo "$site is DOWN" |
09 |
fi |
10 |
done |
小解其意:
1、ping -c1 -w1 中-c1是指ping的次数,-w是指执行的最后期限,也就是执行的时间,单位为秒
2、&>/dev/null 是指标准输出和错误输出都输出到/dev/null上,而不在界面上显示;
后面的&&和|| 是与和或得意思,如a&&b||c ,表示a为真,则执行b;否则执行c