IP地址的最后一段

Last segment of IP Address

我正在编写一个 ping 实用程序来检查连接。我们的 IP 范围为 X.X.X.0 - X.X.X.24

Ping X.X.X.08 - 给出未知主机

Ping X.X.X.008- 给出未知主机

Ping X.X.X.8 - 获得成功响应

最后一个八位字节应该有多少位数字?


但是当我 ping X.X.X.007 或 X.X.X.07 或 X.X.X.7 工作时,我得到了成功的响应。

可以遮挡我缺少的东西吗?

通常,最后一个八位字节是 X.X.X.001 还是 .01 或 .1 并不重要。 查看我在 192.168.0.1 和 .01 和 .001 上的 ping 结果 => 它们的结果都是 .1

这几乎完全取决于您的 ping 的实现,但最可能的原因是 08 被视为 octal 数字,因为它以 0.

开头

而且,由于有效的八进制数字限于 0..7,它假定它是 而不是 数字 IP 地址,而是 name 被查找(例如在 DNS 中)。

此八进制行为可以通过以下抄本确认(在 Windows 下):

C:\Users\Pax> ping 192.168.1.061
Pinging 192.168.1.49 with 32 bytes of data:
Reply from 192.168.1.61: Destination host unreachable.
:

从输出的第一行开始,061 似乎已被视为八进制,因为 61<sub>8</sub> (6x8+1) = 49<sub>10</sub>。随后的几行,尽管它们 声称 正在 ping .61 地址,但它们是在撒谎。那是因为那是我的 actual 机器,如果我在没有前导零的情况下这样做,它工作正常:

C:\Users\Pax>ping 192.168.1.61
Pinging 192.168.1.61 with 32 bytes of data:
Reply from 192.168.1.61: bytes=32 time<1ms TTL=128
:

如果八进制位包含非八进制数字,那就是它开始抱怨主机本身而不是它无法访问(或者更糟的是,ping 错误机):

C:\Users\Pax>ping 192.168.1.61
Pinging 192.168.1.61 with 32 bytes of data:
Reply from 192.168.1.61: bytes=32 time<1ms TTL=128
:

C:\Users\Pax>ping 192.0168.1.61
Ping request could not find host 192.0168.1.61.
    Please check the name and try again.