[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] 【续】[一日一教学](37)测试IP连接:ping

本帖最后由 Hello123World 于 2025-4-11 16:27 编辑

【原】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-2576-1-1.html
【续】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-13798-1-1.html
零、概述
ping 是网络诊断中最基础的工具之一,用于测试主机之间的连通性。

一、帮助信息
以下是通过 ping /? 获取到官方帮助信息:
  1. C:\Users\HelloWorld>ping /?
  2. 用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
  3.             [-r count] [-s count] [[-j host-list] | [-k host-list]]
  4.             [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
  5.             [-4] [-6] target_name
  6. 选项:
  7.     -t             Ping 指定的主机,直到停止。
  8.                    若要查看统计信息并继续操作,请键入 Ctrl+Break;
  9.                    若要停止,请键入 Ctrl+C。
  10.     -a             将地址解析为主机名。
  11.     -n count       要发送的回显请求数。
  12.     -l size        发送缓冲区大小。
  13.     -f             在数据包中设置“不分段”标记(仅适用于 IPv4)。
  14.     -i TTL         生存时间。
  15.     -v TOS         服务类型(仅适用于 IPv4。该设置已被弃用,
  16.                    对 IP 标头中的服务类型字段没有任何
  17.                    影响)。
  18.     -r count       记录计数跃点的路由(仅适用于 IPv4)。
  19.     -s count       计数跃点的时间戳(仅适用于 IPv4)。
  20.     -j host-list   与主机列表一起使用的松散源路由(仅适用于 IPv4)。
  21.     -k host-list    与主机列表一起使用的严格源路由(仅适用于 IPv4)。
  22.     -w timeout     等待每次回复的超时时间(毫秒)。
  23.     -R             同样使用路由标头测试反向路由(仅适用于 IPv6)。
  24.                    根据 RFC 5095,已弃用此路由标头。
  25.                    如果使用此标头,某些系统可能丢弃
  26.                    回显请求。
  27.     -S srcaddr     要使用的源地址。
  28.     -c compartment 路由隔离舱标识符。
  29.     -p             Ping Hyper-V 网络虚拟化提供程序地址。
  30.     -4             强制使用 IPv4。
  31.     -6             强制使用 IPv6。
复制代码
二、选项、参数详解
在 Windows 的 cmd 环境中,ping 命令支持多种参数,以下是其核心功能及常用参数说明:
1、 测试对目标(ip、域名)的连通性
ping [目标IP或域名]
  1. ping www.baidu.com
  2. ping 192.168.1.1
复制代码
默认行为:发送 4 个 ICMP 回显请求包,显示响应时间(TTL)和丢包情况。

2、持续测试对目标(ip、域名)的连通性
-t        持续发送请求,直到手动停止(Ctrl + C 终止)。
  1. ping -t www.baidu.com
  2. ping -t 192.168.1.1
复制代码
3、按照规定次数,测试对目标(ip、域名)的连通性
-n <次数>        指定发送请求的次数(如发送 10 次)。
  1. ping -n 10 192.168.1.1
复制代码
4、指定发送包的大小
-l <大小>        指定发送的包大小(字节)。默认 32 字节,最大 65500(需管理员权限)。
从以下的结果来看,百度禁止了大数据包的ping,本地机器是可以ping的。
  1. C:\Users\HelloWorld>ping -l 65500 192.168.220.148
  2. 正在 Ping 192.168.220.148 具有 65500 字节的数据:
  3. 来自 192.168.220.148 的回复: 字节=65500 时间<1ms TTL=64
  4. 来自 192.168.220.148 的回复: 字节=65500 时间<1ms TTL=64
  5. 来自 192.168.220.148 的回复: 字节=65500 时间<1ms TTL=64
  6. 来自 192.168.220.148 的回复: 字节=65500 时间=1ms TTL=64
  7. 192.168.220.148 的 Ping 统计信息:
  8.     数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
  9. 往返行程的估计时间(以毫秒为单位):
  10.     最短 = 0ms,最长 = 1ms,平均 = 0ms
  11. C:\Users\HelloWorld>ping -l 65500 www.baidu.com
  12. 正在 Ping www.a.shifen.com [240e:ff:e020:99b:0:ff:b099:cff1] 具有 65500 字节的数据:
  13. 请求超时。
  14. 请求超时。
  15. 请求超时。
  16. 请求超时。
  17. 240e:ff:e020:99b:0:ff:b099:cff1 的 Ping 统计信息:
  18.     数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
复制代码
5、指定超时等待时间
-w <超时>        设置等待响应的超时时间(毫秒),默认 4000ms(4 秒)。
从结果来看,指定为8000(8s)后,超时光标闪了8次,未指定的默认值,闪了4次。
  1. C:\Users\HelloWorld>ping -l 65500 www.baidu.com -w 8000
  2. 正在 Ping www.a.shifen.com [240e:ff:e020:98c:0:ff:b061:c306] 具有 65500 字节的数据:
  3. 请求超时。
  4. 请求超时。
  5. 请求超时。
  6. 请求超时。
  7. 240e:ff:e020:98c:0:ff:b061:c306 的 Ping 统计信息:
  8.     数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
复制代码
6、指定包的生存时间
-i <TTL>        设置包的生存时间(TTL),用于跟踪路由跳数(默认 128)。
这里 -i反而不是最重要的,最重要是对TTL生存时间的理解。
6.1、TTL 的作用
防循环机制:如果网络中存在错误的路由环路,数据包可能无限循环,占用带宽和资源。TTL 通过设定一个初始值,每经过一个路由器(一跳)减 1,当 TTL 降为 0 时,当前路由器会丢弃该包,并返回 ICMP 超时消息(Time Exceeded)。
控制传输范围:TTL 间接限制了数据包能经过的最大跳数(即经过的路由器数量)。
6.2.、TTL 的典型值
不同操作系统的默认 TTL:
操作系统/设备        默认 TTL 值
Windows        128
Linux/Unix        64
路由器/网络设备        255
  1. C:\Users\HelloWorld>ping -l 65500 192.168.220.148 -i 30
  2. 正在 Ping 192.168.220.148 具有 65500 字节的数据:
  3. 来自 192.168.220.148 的回复: 字节=65500 时间<1ms TTL=64
  4. 来自 192.168.220.148 的回复: 字节=65500 时间<1ms TTL=64
  5. 来自 192.168.220.148 的回复: 字节=65500 时间<1ms TTL=64
  6. 来自 192.168.220.148 的回复: 字节=65500 时间=1ms TTL=64
  7. 192.168.220.148 的 Ping 统计信息:
  8.     数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
  9. 往返行程的估计时间(以毫秒为单位):
  10.     最短 = 0ms,最长 = 1ms,平均 = 0ms
  11. C:\Users\HelloWorld>ping -l 65500 192.168.220.148 -i 1
  12. 正在 Ping 192.168.220.148 具有 65500 字节的数据:
  13. 来自 192.168.220.148 的回复: 字节=65500 时间=1ms TTL=64
  14. 来自 192.168.220.148 的回复: 字节=65500 时间=47ms TTL=64
  15. 来自 192.168.220.148 的回复: 字节=65500 时间<1ms TTL=64
  16. 来自 192.168.220.148 的回复: 字节=65500 时间=1ms TTL=64
  17. 192.168.220.148 的 Ping 统计信息:
  18.     数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
  19. 往返行程的估计时间(以毫秒为单位):
  20.     最短 = 0ms,最长 = 47ms,平均 = 12ms
  21. C:\Users\HelloWorld>ping -l 65500 192.168.220.148 -i 0
  22. 选项 -i 的值有错误,有效范围从 1 到 255。
复制代码
三、ping的一些实际应用
1、在批处理脚本中用来延时
默认延时4次,约等于4s。
  1. @echo off
  2. echo hello
  3. ping www.baidu.com
  4. echo world
  5. pause
复制代码
结合-n选项,灵活控制延时,这里设置延时10s
  1. @echo off
  2. echo hello
  3. ping -n 10 www.baidu.com
  4. echo world
  5. pause
复制代码
2、大包测试网络质量
  1. ping -l 2048 192.168.1.1  # 发送 2048 字节的包(需注意 MTU 限制)
复制代码
3、持续监控连接稳定性,并生成报告文件(c:\1.txt)
  1. ping -t 192.168.1.1  >>c:\1.txt
复制代码
四、ping的一些Linux拓展知识
1、默认行为
Windows:默认发送 4 次 请求后停止。
Linux:默认持续发送请求,需手动终止(Ctrl + C)。

2、参数差异
功能        Windows 参数        Linux 参数
指定发送次数        -n <次数>        -c <次数>
设置包大小        -l <大小>        -s <大小>
设置超时时间        -w <毫秒>        -W <秒>
设置 TTL        -i <TTL>        -t <TTL>

3、功能差异
数据包大小限制:
Windows:最大 65500 字节(需管理员权限)。
Linux:通常允许更大包(受内核限制)。

TTL 显示:
Windows 显示目标主机的 TTL 值。
Linux 显示包经过的剩余跳数。

输出格式:
Linux 支持更详细的统计信息(如 ping -q 简化输出)。
Windows 输出更简洁,适合快速查看。

4、示例对比
Linux 发送 5 次请求
  1. ping -c 5 www.google.com
复制代码
Linux 设置包大小为 1000 字节
  1. ping -s 1000 192.168.1.1
复制代码
1

评分人数

返回列表