我的 Windows 是西班牙语的,所以我必须用该语言粘贴控制台输出(我认为在不知道英语版本中使用的确切术语的情况下进行翻译可能会产生比保留屏幕上显示的结果更糟糕的结果)。
这是问题所在:当从 WinXP-SP3 计算机(干净的 Windows 安装,刚刚格式化)ping 不存在的 IP 时,我有时会得到“超时”结果,有时会得到“网络无法访问”消息。
这是由于:
ping 192.168.210.1
Haciendo ping a 192.168.210.1 con 32 bytes de datos:
Tiempo de espera agotado para esta solicitud.
Respuesta desde 80.58.67.86: Red de destino inaccesible.
Respuesta desde 80.58.67.86: Red de destino inaccesible.
Tiempo de espera agotado para esta solicitud.
Estadísticas de ping para 192.168.210.1:
Paquetes: enviados = 4, recibidos = 2, perdidos = 2
(50% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
Mínimo = 0ms, Máximo = 0ms, Media = 0ms
网络上不存在 192.168.210.1。DHCP
客户端已启用,计算机由路由器分配这些网络配置。
我的 IP:192.168.11.2
网络掩码:255.255.255.0
网关:192.168.11.1
DNS:80.58.0.33/194.224.52.36
这是“route print command”的输出:
===========================================================================
Rutas activas:
Destino de red Máscara de red Puerta de acceso Interfaz Métrica
0.0.0.0 0.0.0.0 192.168.11.1 192.168.11.2 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.11.0 255.255.255.0 192.168.11.2 192.168.11.2 20
192.168.11.2 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.11.255 255.255.255.255 192.168.11.2 192.168.11.2 20
224.0.0.0 240.0.0.0 192.168.11.2 192.168.11.2 20
255.255.255.255 255.255.255.255 192.168.11.2 192.168.11.2 1
255.255.255.255 255.255.255.255 192.168.11.2 3 1
Puerta de enlace predeterminada: 192.168.11.1
===========================================================================
Rutas persistentes:
ninguno
输出:
ping 1.1.1.1
Haciendo ping a 1.1.1.1 con 32 bytes de datos:
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.
Estadísticas de ping para 1.1.1.1:
Paquetes: enviados = 4, recibidos = 0, perdidos = 4
1.1.1.1 在网络上不存在。
并且输出:
ping 10.1.1.1
Haciendo ping a 10.1.1.1 con 32 bytes de datos:
Respuesta desde 80.58.67.86: Red de destino inaccesible.
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.
Respuesta desde 80.58.67.86: Red de destino inaccesible.
Estadísticas de ping para 10.1.1.1:
Paquetes: enviados = 4, recibidos = 2, perdidos = 2
(50% perdidos),
10.1.1.1 在网络上不存在。
如有必要,我可以对您的要求进行近似翻译。
我在同一个网络中有其他计算机(WinXP-SP3 和 Win7-SP1),它们也存在此问题。
网关(路由器):Buffalo WHR-HP-GN(官方 Buffalo 固件,不是 DD-WRT)。
我的网络中有一些 Linux(Debian/Kali)机器,因此我在其上进行了测试:
ping 192.168.210.1
PING 192.168.210.1 (192.168.210.1) 56(84) bytes of data.
From 80.58.67.86 icmp_seq=1 Packet filtered
From 80.58.67.86 icmp_seq=2 Packet filtered
From 80.58.67.86 icmp_seq=3 Packet filtered
From 80.58.67.86 icmp_seq=4 Packet filtered
到不存在的 1.1.1.1 :
ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
^C
--- 1.1.1.1 ping statistics ---
153 packets transmitted, 0 received, 100% packet loss, time 153215ms
(等待几分钟后没有回应)。
以及不存在的10.1.1.1:
ping 10.1.1.1
PING 10.1.1.1 (10.1.1.1) 56(84) bytes of data.
From 80.58.67.86 icmp_seq=20 Packet filtered
From 80.58.67.86 icmp_seq=22 Packet filtered
From 80.58.67.86 icmp_seq=23 Packet filtered
From 80.58.67.86 icmp_seq=24 Packet filtered
From 80.58.67.86 icmp_seq=25 Packet filtered
这里发生了什么?
我提出这个问题主要是为了学习目的,但还有另一个原因:当所有 ping 都返回“超时”时,它会创建一个%错误级别%值为 1,但如果有“网络不可达”类型的,%错误级别%变为 0(无错误),这可能不适合 shell 脚本(例如,我们不能使用 ping 来检测网络是否由于与网关失去联系而关闭)。
2017 年 4 月更新:
- 目前,错误已经消失了抱歉。如果再次发生这种情况,我会继续这个帖子。感谢所有合作的人。
答案1
我将尝试更改 Windows 机器上的 ping 超时值,看看是否会改变行为。
ping -w 5000 192.168.201.1
由于这不仅是不存在的 IP,而且位于不存在的子网中,因此它会被传递给您的路由器,而您的路由器不知道如何处理它。我推测路由器固件需要一段时间才能响应“无法到达目标”消息,其顺序与 ping 超时类似,因此有时 ping 会在收到“无法到达目标”消息之前超时。
关于您的 %ERRORLEVEL% 问题,您仍然可以使用它来检测网关的 ping 是否失败。如果您正在 ping 192.168.11.1,而路由器停止响应,则对该地址的后续 ping 将超时。这与对子网中任意不存在的 IP 地址的 ping 不同,因为网关 IP 已存储在您的 ARP 表中。
我希望这是一个不相关的说明(否则我无法正确地想象您的网络),您的路由器在 LAN 内使用其公共 IP 地址似乎很奇怪。
答案2
1.1.1.1 分配给 APNIC 用于实验目的(主要是监控上述滥用行为,导致其无法使用)。目前它被 Google 接管,但 Google 尚未做出回应。