ping的使用

anjingsi 1年前 ⋅ 426 阅读

ping的使用

一、ping 基本使用

在网络中 ping 是一个十分强大的 TCP/IP 工具。它的作用主要为:

  • 1、检测网络的连通情况和分析网络速度
  • 2、根据域名得到服务器IP
  • 3、根据 ping 返回的 TTL 值来判断对方所使用的操作系统及数据包经过路由器数量。

通常会用它来直接 ping ip/host 地址,来测试网络的连通情况。

C:\Users\anjingsi>Ping 172.16.10.152
正在 Ping 172.16.10.152 具有 32 字节的数据:
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63

172.16.10.152 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

直接 ping ip 地址或域名,ping 通会显示出以上数据

  • ***字节***:数据包大小,也就是字节。
  • <时间>time:响应时间,这个时间越小,说明你连接这个地址速度越快。
  • <时间>TTL:Time To Live, 表示 DNS 记录在 DNS 服务器上存在的时间,它是 IP 协议包的一个值,告诉路由器该数据包何时需要被丢弃。可以通过 Ping 返回的 TTL 值大小,粗略地判断目标系统类型是 Windows 系列还是 UNIX/Linux 系列。

默认情况下,Linux 系统的 TTL 值为 64 或 255,WindowsNT/2000/XP 系统的 TTL 值为 128,Windows98 系统的 TTL 值为 32,UNIX 主机的 TTL 值为 255。

因此一般 TTL 值:

  • 100~130ms 之间,Windows 系统 ;
  • 240~255ms 之间,UNIX/Linux 系统。

ping 命令除了直接 ping 网络的 ip 地址,验证网络畅通和速度之外,它还有这些用法。

C:\Users\anjingsi>ping/?

用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
            [-r count] [-s count] [[-j host-list] | [-k host-list]]
            [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
            [-4] [-6] target_name

选项:
    -t             Ping 指定的主机,直到停止。
                   若要查看统计信息并继续操作,请键入 Ctrl+Break;
                   若要停止,请键入 Ctrl+C。
    -a             将地址解析为主机名。
    -n count       要发送的回显请求数。
    -l size        发送缓冲区大小。
    -f             在数据包中设置“不分段”标记(仅适用于 IPv4)。
    -i TTL         生存时间。
    -v TOS         服务类型(仅适用于 IPv4。该设置已被弃用,
                   对 IP 标头中的服务类型字段没有任何
                   影响)。
    -r count       记录计数跃点的路由(仅适用于 IPv4)。
    -s count       计数跃点的时间戳(仅适用于 IPv4)。
    -j host-list   与主机列表一起使用的松散源路由(仅适用于 IPv4)。
    -k host-list    与主机列表一起使用的严格源路由(仅适用于 IPv4)。
    -w timeout     等待每次回复的超时时间(毫秒)。
    -R             同样使用路由标头测试反向路由(仅适用于 IPv6)。
                   根据 RFC 5095,已弃用此路由标头。
                   如果使用此标头,某些系统可能丢弃
                   回显请求。
    -S srcaddr     要使用的源地址。
    -c compartment 路由隔离舱标识符。
    -p             Ping Hyper-V 网络虚拟化提供程序地址。
    -4             强制使用 IPv4。
    -6             强制使用 IPv6。

二、ping -t 的使用

不间断地 Ping 指定计算机,直到中断。

C:\Users\anjingsi>ping -t 172.16.10.152

正在 Ping 172.16.10.152 具有 32 字节的数据:
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63

172.16.10.152 的 Ping 统计信息:
    数据包: 已发送 = 8,已接收 = 8,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

按住键盘的 Ctrl+c 终止它继续 ping 下去,就会停止了,会总结出运行的数据包有多少,通断的有多少了。

三、ping -n 的使用

默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如想测试发送 8 个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:

C:\Users\anjingsi>ping -n 8 172.16.10.152

正在 Ping 172.16.10.152 具有 32 字节的数据:
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63

172.16.10.152 的 Ping 统计信息:
    数据包: 已发送 = 8,已接收 = 8,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

发送 8 个数据包的过程当中,返回了 8 个,没有丢失,这 8 个数据包当中返回速度都为0ms。说明网络非常好。

如果对于一些不好的网络,比如监控系统中非常卡顿,这样测试,返回的结果可能会显示出丢失出一部分,如果丢失的比较多的话,那么就说明网络不好,可以很直观的判断出网络的情况。

四、ping -l size 的使用

-l size:发送 size 指定大小的到目标主机的数据包。

在默认的情况下 Windows 的 ping 发送的数据包大小为 32byt,最大能发送 65500byt。当一次发送的数据包大于或等于 65500byt 时,将可能导致接收方计算机宕机。所以微软限制了这一数值;这个参数配合其它参数以后危害非常强大,比如攻击者可以结合 - t 参数实施 DOS 攻击。(所以它具有危险性,不要轻易向别人计算机使用)。

C:\Users\anjingsi>ping -l 65500 -t 172.16.10.152

正在 Ping 172.16.10.152 具有 65500 字节的数据:
来自 172.16.10.152 的回复: 字节=65500 时间=11ms TTL=63
来自 172.16.10.152 的回复: 字节=65500 时间=16ms TTL=63
来自 172.16.10.152 的回复: 字节=65500 时间=11ms TTL=63
来自 172.16.10.152 的回复: 字节=65500 时间=11ms TTL=63
来自 172.16.10.152 的回复: 字节=65500 时间=11ms TTL=63
来自 172.16.10.152 的回复: 字节=65500 时间=11ms TTL=63

172.16.10.152 的 Ping 统计信息:
    数据包: 已发送 = 6,已接收 = 6,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 11ms,最长 = 16ms,平均 = 12ms

这样它就会不停的向 172.16.10.152 计算机发送大小为 65500byt 的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,网络严重堵塞,由此可见威力非同小可。

五、ping -r count 的使用

在 “记录路由” 字段中记录传出和返回数据包的路由,探测经过的路由个数,但最多只能跟踪到 9 个路由。

# 发送2个数据包,最多记录 9 个路由
C:\Users\anjingsi>ping -n 2 -r 9 172.16.10.152

正在 Ping 172.16.10.152 具有 32 字节的数据:
来自 172.16.10.152 的回复: 字节=32 时间=2ms TTL=63
    路由: 172.16.10.1 ->
           172.16.10.152 ->
           172.16.10.152 ->
           192.168.50.1
来自 172.16.10.152 的回复: 字节=32 时间=2ms TTL=63
    路由: 172.16.10.1 ->
           172.16.10.152 ->
           172.16.10.152 ->
           192.168.50.1

172.16.10.152 的 Ping 统计信息:
    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 2ms,最长 = 2ms,平均 = 2ms

将经过 4 个路由都显示出来了

六、批量 Ping 网段

对于一个网段 ip 地址众多,如果单个检测实在麻烦,那么我们可以直接批量 ping 网段检测,那个 ip 地址出了问题,一目了然。

C:\Users\anjingsi>for /L %D in (150,2,155) do ping 172.16.10.%D

C:\Users\anjingsi>ping 172.16.10.150

正在 Ping 172.16.10.150 具有 32 字节的数据:
来自 172.16.10.150 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.150 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.150 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.150 的回复: 字节=32 时间<1ms TTL=63

172.16.10.150 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

C:\Users\anjingsi>ping 172.16.10.152

正在 Ping 172.16.10.152 具有 32 字节的数据:
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63
来自 172.16.10.152 的回复: 字节=32 时间<1ms TTL=63

172.16.10.152 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

C:\Users\anjingsi>ping 172.16.10.154

正在 Ping 172.16.10.154 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。

172.16.10.154 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),

当输入批量命令后,那么它就自动把网段内所有的 ip 地址都 ping 完为止。

命令中150,2,155就是网段起与结合后面的172.16.10.%D,就是检测172.16.10.150到172.16.10.155之间的所有IP地址,每次IP地址递增2,知道区间的IP全部检测完


全部评论: 0

    我有话说: