【问题标题】:Why doesn't ::1 match 127.0.0.1?为什么 ::1 不匹配 127.0.0.1?
【发布时间】:2018-05-12 20:40:10
【问题描述】:

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的数字在哪里?

【问题讨论】:

    标签: ip ipv6 network-protocols loopback ipv4


    【解决方案1】:

    首先,: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 使用多个环回地址的程序员造成了问题。
    猜你喜欢
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 2011-03-17
    • 2020-02-18
    相关资源
    最近更新 更多