开源是一种精神,分享是一种美德!

ping

相关命令:arping
ping 程序使用 ICMP 协议的强制回显请求数据报以使主机或网关发送一份 ICMP 的回显应答。回显请求数据报(" pings ")含有一个 IP 及 ICMP 的报头,后跟一个``时间值关键字然后是一段任意长度的填充字节用于把保持分组长度为16的整数倍。以下是程序的选项:

ping [ -LRUbdfnqrvR ] [ -c count ] [ -i wait ] [ -l preload ] [ -p pattern ] [ -s packetsize ]

参数
-c
    count 在发送(和接收)了正好数量为 count 的回显应答分组后停止操作。在发送了 count 个分组后没有收到任何分组的特别情况是发送导致了终止(选程主机或网关不可达)。
-d      
    在所用的套接字上使用SO_DEBUG 选项。
-f      
    以高速方式来作ping 。以分组返回的速度来输出其它分组或每秒输出百次。当收到每个回显应答并打印一个退格符时,对每个回显请求都打印一个句点``.。这可以快速显示出丢弃了多少个分组,只有超级用户可以用这个选项。这(操作)对网络要求非常苛刻,应该慎重使用。
-i
    wait 在发送每个分组时等待 wait 个秒数。缺省值为每个分组等待一秒。此选项与-f选项不能同时使用。
-l
    preload 如果指定 preload ,那么 ping 程序在开始正常运行模式前尽可能快地发送分组。同样只有超级用户可以用这个选项。
-n      
    只以数字形式输出信息。这样就不尝试去查找主机名了。
-p
    pattern 可以指定最多16个填充字节用于保持分组长度为16的整数倍。在网络上诊断与数据相关问题时此选项很有用。例如``-p ff将使发出的分组都用全1填充数据区。
-q      
    静态输出。在程序启动和结束时只显示摘要行。
-R      
    记录路由。在回显请求分组中包含记录路由选项并在相应的分组返回时显示路由缓冲区。注意IP首部的容量只能存放9条这样的路由。很多主机忽略或禁用此选项。
-r      
    在所连接的网络上旁路正常的选路表,直接向主机发送分组。如果主机未处于直接相连的网络上,那么返回一个错误。此选项可用来通过无路由接口对一台主机进行检测(例如当接口已被routed 程序丢弃后)。
-s
    packetsize 指定要发送数据的字节量。缺省值为 56 ,这正好在添加了 8 字节的 ICMP 首部后组装成 64 字节的 ICMP 数据报。
    详细模式输出。打印接收到的回显应答以外的ICMP分组。
-t
    设置存活数值TTL的大小-v      
-w
    waitsecs 在 waitsecs 秒后停止 ping 程序的执行。当试图检测不可达主机时此选项很有用。
    
当用ping来隔离故障时,应首先在本地主机上运行,以检查本地网络接口有效 运行。然后,应该进一步检查主机和网关。计算出往返时间和分组丢失率。如 果收到重复的分组,虽然这些分组的往返时间要用于计算往返时间的最小/平均 /最大值,但是它们不应该算在刚才计算的丢失的分组中。当指定数量的分组已 经发送(和接收)时或如果程序被SIGINT信号终止,会显示一份简短的摘要。
如果ping程序根本没有收到任何返回分组,那它将以返回码1退出。出错时返回 2。否则返回0。这些值可能用于查看主机存在与否。
此程序专用于网络测试,度量和管理。因为它会使用网络的流量,在正常操作或 自动的脚本中使用它并不明智。

例a,ping一下baidu

[root@localhost ~]# ping baidu.com
PING baidu.com (123.125.114.144) 56(84) bytes of data.
64 bytes from 123.125.114.144: icmp_seq=1 ttl=54 time=3.51 ms
64 bytes from 123.125.114.144: icmp_seq=2 ttl=54 time=6.03 ms

--- baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 3.515/4.775/6.036/1.262 ms

例b,指定次数和时间,间隔ping baidu

[root@localhost ~]# ping -c 5 -i 0.5 baidu.com
PING baidu.com (123.125.114.144) 56(84) bytes of data.
64 bytes from 123.125.114.144: icmp_seq=1 ttl=54 time=2.92 ms
64 bytes from 123.125.114.144: icmp_seq=2 ttl=54 time=2.97 ms
64 bytes from 123.125.114.144: icmp_seq=3 ttl=54 time=2.99 ms
64 bytes from 123.125.114.144: icmp_seq=4 ttl=54 time=6.98 ms
64 bytes from 123.125.114.144: icmp_seq=5 ttl=54 time=3.14 ms

--- baidu.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 2011ms
rtt min/avg/max/mdev = 2.925/3.806/6.985/1.591 ms   
   

例:-i 指定发送数据包时间间隔,-c 指定一共发送多少个数据包,-I 指定源地址,-q指定直接显示程序的启动和最后结果

# ping -i 0.2 -c 30 -I 192.168.10.208 180.149.132.47 -q
PING 180.149.132.47 (180.149.132.47) from 192.168.10.208 : 56(84) bytes of data.

--- 180.149.132.47 ping statistics ---
30 packets transmitted, 30 received, 0% packet loss, time 5858ms
rtt min/avg/max/mdev = 29.525/29.857/33.755/0.765 ms

 

-i 3 发送周期为 3秒 -s 设置发送包的大小为1024  -t 设置TTL值为 255

# ping -i 3 -s 1024 -t 255 192.168.120.206
   

# ping -I 192.168.1.112 192.168.1.121 -w 3

【说明】

-I 网络界面:使用指定的网络界面送出数据包,即192.168.1.112是发出ping命令的主机IP地址,192.168.1.121是被ping的主机的IP地址。
-w 等待指定时间后停止ping程序的执行。当试图测试不可达主机时此选项很有用,时间单位是秒。
【执行结果】

ping -I 192.168.1.112 192.168.1.121 -w 3
PING 192.168.1.121 (192.168.1.121) from 192.168.1.112 : 56(84) bytes of data.
64 bytes from 192.168.1.121: icmp_seq=1 ttl=64 time=0.017 ms
64 bytes from 192.168.1.121: icmp_seq=2 ttl=64 time=0.015 ms
64 bytes from 192.168.1.121: icmp_seq=3 ttl=64 time=0.020 ms
64 bytes from 192.168.1.121: icmp_seq=4 ttl=64 time=0.018 ms


--- 192.168.1.121 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.015/0.017/0.020/0.004 ms

   

-c 1发送一个包,-W 2超时2秒不到达主机停止

[root@test ~]# ping -c 1 -W 2 192.168.0.100
PING 192.168.0.100 (192.168.0.100) 56(84) bytes of data.


--- 192.168.0.100 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 2000ms

评论(0)

暂无评论

评论

名字:
验证码:
获取验证码
内容: