Jas*_*n C 5 networking ipv6 ip localhost
也许这是一个愚蠢的问题,但有时我看到 IPv6::
表示本地主机,有时我看到::1
. 有时,使用其中一种与另一种似乎是有效和无效之间的区别。
::
和 和有什么区别::1
?如果机器有多个网络接口,是否会产生任何差异?
::1
是真正的“本地主机”或“环回”地址,相当于127.0.0.1
IPv4 中的地址。
::
是“未指定”或“空”地址,相当于0.0.0.0
IPv4 中的地址。它的主要目的是在将套接字绑定到本地地址 \xe2\x80\x93 时引用所有可能的本地地址,这样做与使用环回地址相反。
据我所知,“未指定”地址并不意味着“本地主机”正式 \xe2\x80\x93,连接到未指定地址并不意味着是一个有效的操作,无论是[::]
还是0.0.0.0
。(然而,有些操作系统仍然接受它\xe2\x80\x93,例如,在Linux源代码中,有一种特殊情况,处理与0.0.0.0的连接,就好像它们是与127.0.0.1的连接一样,并带有注释“为了与 BSD 兼容”,并且它对 [::] 有类似的处理,只是为了与 IPv4 保持一致。)