为什么 ::1 不匹配 127.0.0.1?
Why doesn't ::1 match 127.0.0.1?
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这个数字在哪里?
首先,: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
进行比较。它们完全无关。他们两个恰好以相同的数字结尾。
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这个数字在哪里?
首先,: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
进行比较。它们完全无关。他们两个恰好以相同的数字结尾。