命令行 PING命令的使用

本文介绍了Ping命令的基本用法及参数详解,包括如何通过Ping命令检查网络连接性、调试网络问题等。同时,还列举了常见的Ping命令错误回应及其可能的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天整理电脑资料,发现好多以前的学习记录,先把这个ping的使用,分享给大家看。
(声明,这个文章应该是我从别的地方看到然后保存的。)

语法格式
ping [ -d] [ -D ] [  -n ] [  -q ] [ -r] [ -v] [  -R ] [ -a addr_family ] [  -c Count ] [ -w timeout ] [  -f |  -i Wait ] [  -l Preload ] [  -p Pattern ] [  -s PacketSize ] [ -S hostname/IP addr ] [ -L ] [ - I a.b.c.d. ] [ -o interface ] [ -T ttl ] Host [  PacketSize ] [  Count ]



使用说明
ping 命令发送一个因特网控制报文协议 (ICMP) ECHO_REQUEST 去从主机或网关那里获得 ICMP ECHO_RESPONSE 信号。
ping 命令用于:
确定网络和各外部主机的状态。 
跟踪和隔离硬件和软件问题。 
测试、评估和管理网络。
ping 命令每秒发送一个数据报并且为每个接收到的响应显示一行输出。
ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。
ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。
主要参数
-c Count 指定要被发送(或接收)的回送信号请求的数目,由 Count 变量指出。 
-w timeout 这个选项仅和 -c 选项一起才能起作用。它使 ping 命令以最长的超时时间去等待应答(发送最后一个信息包后)。 
-d 开始套接字级别的调试。 
-D 这个选项引起 ICMP ECHO_REPLY 信息包向标准输出的十六进制转储。 
-f 指定 flood-ping 选项。-f 标志“倾倒”或输出信息包,在它们回来时或每秒 100 次,选择较快一个。每一次发送 ECHO_REQUEST,都显示一个句号,而每接收到一个 ECHO_REPLY 信号,就显示一个退格。这就提供了一种对多少信息包被丢弃的信息的快速显示。仅仅 root 用户可以使用这个选项。 
注: 这在网络上将非常困难,必须小心使用。Flood ping 命令仅仅 root 用户可以使用。-f 标志与 -i Wait 标志不兼容。 
-I a.b.c.d 指定被 a.b.c.d 标明的接口将被用于向外的 IPv4 多点广播。-I 标志是大写的 i。 
-o interface 指出 interface 将被用于向外的 IPv6 多点广播。接口以“en0”,“tr0”等的形式指定。 
-i Wait 在每个信息包发送之间等待被 Wait 变量指定的时间(秒数)。缺省值是在每个信息包发送之间等待 1 秒。这个选项与 -f 标志不兼容。 
-L 对多点广播 ping 命令禁用本地回送。 
-l Preload 在进入正常行为模式(每秒 1 个)前尽快发送 Preload 变量指定数量的信息包。-l 标志是小写的 L。 
-n 指定仅输出数字。不企图去查寻主机地址的符号名。 
-p Pattern 指定用多达 16 个“填充”字节去填充您发送的信息包。这有利于诊断网络上依赖数据的问题。例如,-p ff 全部用 1 填充信息包。 
-q 指定静默输出。除了在启动和结束时显示总结行外什么也不显示。 
-r 忽略路由表直接送到连接的网络上的主机上。如果 主机 不在一个直接连接的网络上,ping 命令将产生一个错误消息。这个选项可以被用来通过一个不再有路由经过的接口去 ping 一个本地主机。 
-R 指定记录路由选项。-R 标志包括 ECHO_REQUEST 信息包中的 RECORD_ROUTE 选项,并且显示返回信息包上的路由缓冲。 
注: IP 头仅仅大到适合 9 个这样的路由。而且,许多主机和网关忽略这个选项。 
-a addr_family 映射 ICMP 信息包的目的地址到 IPv6 格式,如果 addr_family 等于“inet6”的话。 
-s PacketSize 指定要发送数据的字节数。缺省值是 56,当和 8 字节的 ICMP 头数据合并时被转换成 64 字节的 ICMP 数据。 
-S hostname/IP addr 将 IP 地址用作发出的 ping 信息包中的源地址。在具有不止一个 IP 地址的主机上,可以使用 -S 标志来强制源地址为除了软件包在其上发送的接口的 IP 地址外的任何地址。如果 IP 地址不是以下机器接口地址之一,则返回错误并且不进行任何发送。 
-T ttl 指定多点广播信息包的生存时间为 ttl 秒。 
-v 请求详细输出,其中列出了除回送信号响应外接收到的 ICMP 信息。

应用实例
要检查网络和主机 canopus 的连接性,并且指定要发送的回送信号请求的数目,请输入: 
ping  -c 5 canopus
或者 
ping canopus  56  5
要想获取有关主机 lear 的信息,并且启动套接字级别的调试,请输入: 
ping  -d lear
要获取有关主机 opus 的信息,并且指定要发送的字节数,请输入: 
ping  -s 2000 opus
或者 
ping opus  2000
要调用 flood-ping 选项给主机 stlopnor,请输入: 
ping  -f stlopnor
要指定发送到主机 opus 信息包的发送时间间隔为 5 秒,请输入: 
ping  -i5 opus
在进入正常行为模式前尽快发送 Preload 变量指定的数量的信息包到主机 opus,请输入: 
ping  -l 10 opus
要诊断网络上依赖数据的问题,请输入: 
ping  -p ff opus
要指定静默输出,请输入: 
ping  -q bach
这个例子是本人自己写的,也是用的最多的。
ping 192.168.1.1  –c 1000 – i 0.001
ping 网关 1000次,延时0.001秒。 :loveliness:
 
 
Ping的错误回应

Ping的返回信息有"Request Timed Out"、"Destination Host Unreachable"和"Bad IP address"还有"Source quench received"。

A,Request Timed Out
"Request Timed Out"这提示除了在《PING(一)》提到的对方可能装有防火墙或已关机以外,还有就是本机的IP不正确和网关设置错误。   
  ①、IP不正确:
IP不正确主要是IP地址设置错误或IP地址冲突,这可以利用ipconfig /all这命令来检查。在WIN2000下IP冲突的情况很少发生,因为系统会自动检测在网络中是否有相同的IP地址并提醒你是否设置正确。在NT中不但会出现"request time out"这提示而且会出现"Hardware error"这提示信息比较特殊不要给它的提示所迷惑。   
  ②、网关设置错误:这个错误可能会在第四个步骤出现。网关设置错误主要是网关地址设置不正确或网关没有帮你转发数据,还有就是可能远程网关失效。这里主要是在你Ping外部网络地址时出错。错误表现为无法Ping外部主机返回信息"Request time out"。
["Request Timed Out"这个信息表示对方主机可以到达到TIME OUT,这种情况通常是为对方拒绝接收你发给它的数据包造成数据包丢失。大多数的原因可能是对方装有防火墙或已下线。]
------但Windows下面,对方主机联不上时(比如网络连接有故障),都是Request Timed Out,而在Linux下面则都是"、"Destination Host Unreachable"

B, Destination   host   unreachable   目的主机无法到达!   
当你在开始PING网络计算机时如果网络设备出错它返回信息会提示"destination   host   unreachable"。如果局域网中使用DHCP分配IP时,而碰巧DHCP失效,这时使用   PING命令就会产生此错误。因为在DHCP失效时客户机无法分配到IP系统只有自设IP,它往往会设为不同子网的IP。所以会出现"Destination   Host   Unreachable"。另外子网掩码设置错误也会出现这错误。 当然,网络线未接好,也是重要的产生原因. 
  
还有一个比较特殊就是路由返回错误信息,它一般都会在"Destination   Host   Unreachable"前加上IP地址说明哪个路由不能到达目标主机。这说明你的机器与外部网络连接没有问题,但与某台主机连接存在问题。

如:From 192.168.148.226 icmp_seq=50 Destination Host Unreachable


["Destination Net Unreachable"这个信息表示对方主机不存在或者没有跟对方建立连接。这里要说明一下"destination host unreachable"和"time out"的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其它原因不可到达,这时候会出现"time out",如果路由表中连到达目标的路由都没有,那就会出现"destination host unreachable"。]

C,"Bad IP address" 这个信息表示你可能没有连接到DNS服务器所以无法解析这个IP地址,也可能是IP地址不存在。 

D,"Source quench received"信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
### 如何在命令行使用 `ping` 命令 #### 使用方法概述 `ping` 是一种用于测试网络连接状态和质量的工具。通过发送 ICMP 请求并接收响应,可以判断目标主机是否可达、延迟时间和丢包率等重要参数[^1]。 #### 基本语法 以下是 `ping` 的基本语法结构: ```plaintext ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host_list] | [-k host_list]] [-w timeout] target_name ``` 其中各选项含义如下: - `-t`: 持续运行直到手动中断 (Ctrl+C)。 - `-a`: 解析目标 IP 地址对应的主机名。 - `-n count`: 发送指定数量 (`count`) 的回显请求。 - `-l size`: 设置每次发送数据包大小为 `size` 字节,默认为 32 字节。 - `-w timeout`: 超时时间为 `timeout` 毫秒。 - `target_name`: 目标主机名称或 IP 地址。 #### 实际操作示例 以下是一些常见的实际应用案例: ##### 测试本地与远程服务器之间的连通性 假设需要测试与 Google DNS 服务器(8.8.8.8)的连通性,可执行以下命令: ```cmd ping 8.8.8.8 ``` 这会默认连续发送四个 ICMP 数据包,并显示往返时间统计信息。 ##### 自定义超时设置 当怀疑存在高延迟问题时,可以通过调整超时值来获取更精确的结果: ```cmd ping www.example.com -w 5000 ``` 此命令将等待最多五秒钟才判定一次尝试失败[^4]。 ##### 不间断监控模式 为了长期观察某台设备的状态变化趋势,启用无限循环功能非常有用: ```cmd ping -t localhost ``` 按 Ctrl+C 键随时停止进程[^2]。 #### 故障排查技巧 如果遇到无法正常使用 ping 功能的情况,请按照下列建议逐步分析原因: 1. **确认是否存在有效的 ping 工具** 打开资源管理器定位至 C:\Windows\System32\ 文件夹查找名为 “ping.exe” 的文件;如果没有找到,则表明系统安装过程中遗漏了该组件。 2. **验证路径配置正确无误** 输入 echo %PATH% 查看当前环境变量列表是否包含上述目录位置。如果不是的话,需手工添加进去后再试一遍。 3. **考虑防火墙规则影响** 如果以上两点均正常但仍报错提示找不到命令或者返回错误消息如 "Bad IP address", 可能是因为被安全防护机制拦截所致, 此刻应该暂时关闭个人电脑上的杀毒软件再重测效果如何. --- ### Java 中模拟 Ping 功能实现简介 除了直接调用操作系统自带的服务外,还可以借助编程语言自行开发类似的解决方案。下面给出一段基于 Socket API 构建简单版 TCP Echo Client 的伪代码作为参考[^3]: ```java import java.net.*; public class SimplePing { public static void main(String[] args)throws Exception{ String hostname="www.google.com"; int port=7; //echo service standard port number try(Socket socket=new Socket(hostname,port)){ System.out.println("Successfully connected to "+hostname); }catch(UnknownHostException e){ System.err.println("Invalid Hostname"); } } } ``` 尽管这段脚本能初步满足需求,但由于缺乏对底层协议细节的支持(比如计算 RTT),因此仅适用于学习目的而非生产环境中替代真正的 ping 应用程序。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值