不完整的IP地址将被填充为零。

4

我意识到在Linux (RHEL和Debian)中,点分十进制表示法不完整的IPv4地址会被填充内部零。例如,我输入了172.30.122而不是172.30.0.122,但是Linux进行了修正并使用了172.30.0.122。

# ping 172.30.107  

PING 172.30.107 (172.30.0.107) 56(84) bytes of data.  
64 bytes from 172.30.0.107: icmp_seq=1 ttl=62 time=2.19 ms  
64 bytes from 172.30.0.107: icmp_seq=2 ttl=62 time=1.18 ms

至少需要两个字节 - 不需要缺失的内部字节:

# ping 172.107  
PING 172.107 (172.0.0.107) 56(84) bytes of data.

这是一个bug吗?标准允许这样做吗?

提前感谢。


1
这是操作系统的标准行为,Windows也是如此,是否属于TCP/IP标准我不知道。 - Toby Allen
1
可能是省略IPv4地址点十进制表示法中的零的文档的重复问题。 - tripleee
1个回答

1
这是一个重复的问题,因为它之前已经有答案了,也许再多做一些研究,你会找到答案:D。
有一个类似的Stack Overflow问题(this post)。
主要原因是inet_aton()(man page)如何将八位数转换为二进制地址。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接