我正在使用getaddrinfo()返回所有分配的IP地址(IPv4和 IPv6)用于我的本地机器。我在XP上看到,getaddrinfo()只返回:: 1
(我在2台XP机器上安装了IPV6堆栈并配置了IPV6地址并ping了两个对等设备。它们工作正常。我检查Ipconfig一切正常。 )
答案 0 :(得分:3)
我相信Gonzalo走在正确的轨道上。根据我的理解,:: 1是localhost的简写。 。 。几乎在每种情况下,当迭代返回的列表时,IPV6 localhost :: 1首先出现。 。
答案 1 :(得分:0)
好吧,在::1
地址(或者更确切地说,在任何地址中,其中有一个双冒号),双冒号扩展为零位数,需要将地址填充到全长,所以扩展版本看起来像0000:0000:0000:0000:0000:0000:0000:0001
。
在ipv6中,这是唯一的地址,特别定义为环回地址(与ipv4不同,为了这些目的,你得到127.0.0.0/8
。)
(你确定,你实际上是在迭代结果而不只是检查链表的第一个元素吗?)
答案 2 :(得分:0)
我建议远离Windows XP和2003上的双堆栈配置。堆栈彼此之间的关系并不好。如果您希望IPv6使用Windows 2008 R2或Windows 7。