PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量检查网络是否连通,可以很好地帮助我们分析和判定网络故障。Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMP echo(ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。
参数说明:
-a #将地址解析为主机名
-A #使用数据包中响应数据
-B #不允许ping广播地址
-c #设置发送数据包数量
-D #打印时间戳
-d #使用SO_DEBUG套接字选项
-f #设置“不分段”标志,在数据包超出本地网络时,不允许IP分段。
-I #指定使用的网络接口
-i #设置两次ping的时间间隔
-L #抑制组播报文回送,只适用于ping的目标为一个组播地址
-l #设置在送出要求信息之前,先行发出的数据包;
-m #在数据中添加一个标记
-M #指定路径发现MTU
-n #不要将ip地址转换成主机名;
-p #指定填充ping数据包的十六进制内容,在诊断与数据有关的网络错误时这个选项就非常有用,如:“-p ff”;
-q #不显示任何传送封包的信息,只显示最后的结果
-Q #设置Qos,它是ICMP数据报相关位;可以是十进制或十六进制数
-s #指定每次ping发送的数据字节数
-S #使用<size>作为SO_SNDBUF套接字选项值
-t #设置TTL(Time To Live)为指定的值。该字段指定IP包被路由器丢弃之前允许通过的最大网段数;
-U #打印到用户延迟
-v #使ping处于verbose方式,它要ping命令除了打印ECHO-RESPONSE数据包之外,还打印其它所有返回的ICMP数据包
-V #打印版本并推出
-w #设置超时时间
-W #以毫秒为单位设置ping的超时时间;
IPv4 options:
-4 #使用ipv4
-b #允许ping广播地址
-R #记录ping的路由过程(IPv4 only); 注意:由于IP头的限制,最多只能记录9个路由,其他会被忽略;
-T #设置IP timestamp选项,可以是下面的任何一个 <tsonly|tsandaddr|tsprespec>
IPv6 options:
-6 #使用ipv6
-F #为ping回显请求分配一个20位的“flow label”,如果未设置,内核会为ping随机分配;
-N #使用icmp6节点信息查询
常用参数使用示例:
每个1秒ping一次共ping5次
[root@192 admin]# ping -i 1 -c 5 192.168.100.15
PING 192.168.100.15 (192.168.100.15) 56(84) bytes of data.
64 bytes from 192.168.100.15: icmp_seq=1 ttl=64 time=0.554 ms
64 bytes from 192.168.100.15: icmp_seq=2 ttl=64 time=0.566 ms
64 bytes from 192.168.100.15: icmp_seq=3 ttl=64 time=0.548 ms
64 bytes from 192.168.100.15: icmp_seq=4 ttl=64 time=0.741 ms
64 bytes from 192.168.100.15: icmp_seq=5 ttl=64 time=1.09 ms
--- 192.168.100.15 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4055ms
rtt min/avg/max/mdev = 0.548/0.700/1.093/0.209 ms
指定字节数为100的ping
[root@192 admin]# ping -s 100 192.168.100.15
PING 192.168.100.15 (192.168.100.15) 100(128) bytes of data.
108 bytes from 192.168.100.15: icmp_seq=1 ttl=64 time=0.508 ms
108 bytes from 192.168.100.15: icmp_seq=2 ttl=64 time=0.332 ms
108 bytes from 192.168.100.15: icmp_seq=3 ttl=64 time=0.588 ms
108 bytes from 192.168.100.15: icmp_seq=4 ttl=64 time=0.731 ms
108 bytes from 192.168.100.15: icmp_seq=5 ttl=64 time=0.672 ms
简单的ping脚本
[root@192 admin]# cat ip.txt
192.168.100.100
192.168.100.15
#!/bin/bash
TIME_DATA=$(date +"%Y-%m-%d")
DIR=/home/admin/`date +%Y%m%d`
if [ ! -d $DIR ];then
mkdir /home/admin/`date +%Y%m%d`
else
echo "ping_dir is ok!"
fi
while read line
do
ping -s 100 -i 1 -c 5 $line >> $DIR/${TIME_DATA}-ping100-$line.txt &
done < /home/admin/ip.txt