我正在编写一个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时,我得到了成功的响应。
我想念的东西可以遮住一些灯光吗?
答案 0 :(得分:2)
这几乎完全取决于您的ping
的实现,但最可能的原因是08
被视为八进制数字,因为它以{{ 1}}。
而且,由于有效的八进制数字仅限于0
,因此它假定它不是 数字IP地址,而是要查找的 name (例如在DNS中)。
可以在以下Windows抄本中确认八进制行为(在Windows下):
0..7
自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
似乎已被视为八进制。尽管随后的行声称要对618 (6x8+1) = 4910
地址执行ping操作,但它们仍在说谎。那是因为那是我的 actual 机器,如果我在不使用前导零的情况下进行操作,那么它将正常工作:
.61
如果八进制位包含非八进制数字,则 表示它开始抱怨主机本身,而不是无法访问主机(或更糟糕的是,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
:
答案 1 :(得分:0)