为什么用这种替代方式编写 IP 地址有效,并且有实际用例吗?

为什么用这种替代方式编写 IP 地址有效,并且有实际用例吗?

最近我看到一个错误输入的 telnet 命令,我发现“常规”数字被解释为 IP 地址。我自己在 Windows 中尝试过,那里显示了相同的行为,所以显然这是输入 IP 地址的可接受方式。我只是想知道是否有人可以解释这是如何工作的,以及它是否有任何实际应用(即什么时候这种方式会更好/更简单?)。

我似乎在这里看到了一种模式,但我仍然不太明白为什么你会以这种方式输入地址:

>ping 255
Pinging 0.0.0.255 with 32 bytes of data:
PING: transmit failed. General failure.

>ping 256
Pinging 0.0.1.0 with 32 bytes of data:
PING: transmit failed. General failure.

>ping 257
Pinging 0.0.1.1 with 32 bytes of data:
PING: transmit failed. General failure.

>ping 16581375
Pinging 0.253.2.255 with 32 bytes of data:

>ping 1658137511
Pinging 98.213.43.167 with 32 bytes of data:
Reply from 98.213.43.167: bytes=32 time=170ms TTL=47

答案1

由于 IP 地址在计算机内部表示为“普通”数字,因此在输入中将其表示为“普通”数字是很正常的。 http://en.wikipedia.org/wiki/IP_address

在 IPv4 中,地址由 32 位组成,将地址空间限制为 4294967296 (232) 个可能的唯一地址。IPv4 保留了一些地址用于特殊用途,例如专用网络(约 1800 万个地址)或多播地址(约 2.7 亿个地址)。

IPv4 地址通常以点十进制表示法表示,由四个十进制数字组成,每个数字的范围从 0 到 255,用点分隔,例如 172.16.254.1。每个部分代表地址的一组 8 位(八位字节)。在某些技术写作中,IPv4 地址可能以各种形式表示十六进制、八进制或二进制表示形式。

这种情况的用例可能主要是当您从某些软件获得未格式化的 IP 地址输出时。

相关内容