IP地址的最后一段
我正在编写ping实用程序来检查连接。我们的IP范围从X.X.X.0到X.X.X.24IP地址的最后一段,ip,ping,Ip,Ping,我正在编写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上的ping结果以及.00
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上的ping结果以及.001=>它们的结果都是.1
通常,最后一个八位字节是X.X.X.001还是.01或.1并不重要。 请参见192.168.0.1和.01上的ping结果以及.001=>它们的结果都是.1
这几乎完全取决于
ping的实现,但最可能的原因是08
被视为八进制数,因为它以0
开头
而且,由于有效的八进制数字限制为0..7
,因此它假定它不是一个数字IP地址,而是一个要查找的名称(例如,在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.
:
由于618(6x8+1)=4910,因此从输出的第一行开始,061
似乎被视为八进制。随后的几行虽然声称正在ping.61
地址,但都是假的。这是因为这是我的实际机器,如果我在没有前导零的情况下运行,它工作正常:
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.168.1.61
使用32字节数据ping 192.168.1.61:
192.168.1.61回复:bytes=32 time这几乎完全取决于ping
的实现,但最可能的原因是08
被视为八进制数,因为它以0
开头
而且,由于有效的八进制数字限制为0..7
,因此它假定它不是一个数字IP地址,而是一个要查找的名称(例如,在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.
:
由于618(6x8+1)=4910,因此从输出的第一行开始,061
似乎被视为八进制。随后的几行虽然声称正在ping.61
地址,但都是假的。这是因为这是我的实际机器,如果我在没有前导零的情况下运行,它工作正常:
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.168.1.61
使用32字节数据ping 192.168.1.61:
从192.168.1.61回复:bytes=32 times我怀疑这只是因为十进制1和八进制1是相同的东西:-)我怀疑这只是因为十进制1和八进制1是相同的东西:-)明白了。目前我没有在任何零的前面加前缀,如果它有意义的话。所以在代码中,为了安全起见,当最后一段小于10时,不加前缀是有意义的。谢谢@paxdiablo@jeevjyotsinghchhabda,我宁愿建议不在任何段前面加零,而不仅仅是最后一个。例如,192.168.10.1
和192.168.010.1
是两个完全不同的IP地址。后者与192.168.8.1
相同。在我的例子中,我为给定的Ip范围生成Ip,所以我只需要处理最后一个八位元。谢谢你。目前我没有在任何零的前面加前缀,如果它有意义的话。所以在代码中,为了安全起见,当最后一段小于10时,不加前缀是有意义的。谢谢@paxdiablo@jeevjyotsinghchhabda,我宁愿建议不在任何段前面加零,而不仅仅是最后一个。例如,192.168.10.1
和192.168.010.1
是两个完全不同的IP地址。后者与192.168.8.1
相同。在我的例子中,我为给定的Ip范围生成Ip,所以我只需要处理最后一个八位元。再次感谢