什么是 IP 地址’: : 1’?

我在没有网络连接的本地机器上使用套接字:

IPAddress address = IPAddress.Any; // doesn't work
IPAddress address = IPAddress.Parse("::1"); // works

那么 ::1的 IP 地址到底是什么呢?这是默认的可用 IP 地址还是回送地址?在一台有专用 IP 地址和网络连接的机器上,上面的代码(工作线)会发生什么情况?

编辑:

精确的代码用于将特定的 IP 地址绑定到套接字,如下所示:

ServicePoint sp = ServicePointManager.FindServicePoint(uri);
sp.BindIPEndPointDelegate = new BindIPEndPoint(Bind);
// here's the bind delegate:
private IPEndPoint Bind(ServicePoint sp, IPEndPoint ep, int retryCount)
{
return new IPEndPoint(IPAddress.Parse("::1"), 0);
}
127120 次浏览

::1是 IPv6中的环回地址,可以把它看作是 IPv6版本的 127.0.0.1

参见 http://en.wikipedia.org/wiki/Localhost

仅仅为了给它添加一点信息,在 IPv6环回地址表示为127个零后面跟着一个1,即(0000... 127次。. 它的表示应该是这样的-> 0000:0000:0000:0000:0000:0000:0000:0001,但是我们有一些简单的表示。如果一个块中有所有的零,你可以用一个0来代替它。所以它变成了-> 0:0:0:0:0:0:0:0001。 同样我们可以看到我们有一连串的零,它们可以被消除,我们得到 - > 校对: 0001-> : 1.

答案很简单: ::1是 IPV6环回地址 0:0:0:0:0:0:0:1的压缩格式,它相当于 IPV4地址 127.0. 0.1