为什么 ::1 不匹配 127.0.0.1?

dat*_*uoc 2 ip loopback network-protocols ipv4 ipv6

IPv6 格式的环回 IP 地址为: 0000:0000 : 0000 :0000 : 0000:0000: 0000:0001

缩写为: 0:0: 0 :0 : 0:0: 0:1

然后缩短为(保留最后 2 个单词,即 4 个字节,以匹配 IPv4): :0:1(但我仍然不知道为什么它在 1 之前是双冒号而不是单冒号,也许是为了暗示有这里4个字节)

并简化为::: 1

将::1展开为IPv4格式,即: 0.0.0.1

但这与127.0.0.1不一样,数字 127 在哪里?

San*_*ann 5

首先,:0:1不是有效的 IPv6 地址。我将解释原因:

IPv6 地址是 128 位地址,以冒号分隔的八个十六进制部分编写。因为这写起来可能相当乏味,并且因为许多 IPv6 地址(如0:0:0:0:0:0:0:1)包含许多为零的部分,所以允许用两个冒号替换一个零序列。完整地址仍然相同。只是写起来::比容易一些0:0:0:etc

IPv4 和 IPv6 是两种不同的协议。无法将 IPv4 环回地址127.0.0.1与 IPv6 环回地址进行比较::1。它们完全无关。它们恰好都以相同的数字结尾。

  • 是的,它们是如此不相关,以至于 IPv4 环回实际上是整个网络(“127.0.0.0/8”),而 IPv6 环回是单个地址。这给一些在尝试将应用程序转换为 IPv6 时依赖于 IPv4 使用多个环回地址的程序员带来了问题。 (5认同)