C 这是IPv6网络中的一个bug吗?

C 这是IPv6网络中的一个bug吗?,c,ubuntu,ipv6,C,Ubuntu,Ipv6,当尝试将Facebook的数字IP地址解析为测试时,2620:0:1cfe:face:b00c::3:,如果我将终止的0从地址中移除,inet\u pton()。如果我把它放回一切正常 运行ubuntu 9.10: rc = inet_pton(AF_INET6, "2620:0:1cfe:face:b00c::3:0", &ip); -> OK rc = inet_pton(AF_INET6, "2620:0:1cfe:face:b00c::3:", &ip); ->

当尝试将Facebook的数字IP地址解析为测试时,
2620:0:1cfe:face:b00c::3:
,如果我将终止的
0
从地址中移除,
inet\u pton()。如果我把它放回一切正常

运行ubuntu 9.10:

rc = inet_pton(AF_INET6, "2620:0:1cfe:face:b00c::3:0", &ip); -> OK
rc = inet_pton(AF_INET6, "2620:0:1cfe:face:b00c::3:", &ip); -> returns -2

ping6-n www.v6.facebook.com
返回不带尾随0的IP地址。

似乎ping非常明智地在IP地址后添加了冒号,如下所示:

PING maclawran.ca (173.230.128.18) 56(84) bytes of data.
64 bytes from ns.maclawran.ca (173.230.128.18): icmp_seq=1 ttl=51 time=50.3 ms
当然,如果您正在ping一个IPv6地址,其中已经有很多冒号:

PING 2620:0:1cfe:face:b00c::3(2620:0:1cfe:face:b00c::3) 56 data bytes
64 bytes from 2620:0:1cfe:face:b00c::3: icmp_seq=1 ttl=52 time=9.44 ms
======================================^ << THANKS PING
PING 2620:0:1cfe:face:b00c::3(2620:0:1cfe:face:b00c::3)56个数据字节 2620:0:1cfe:face:b00c::3:icmp_seq=1的64字节ttl=52时间=9.44毫秒
=================================2620:0:1cfe:face:b00c::3:“这不是“2620:0:1cfe:face:b00c::3:0”的有效缩写。如果这回答了您的问题,请接受它。如果这只是附加信息,请编辑您的问题并添加它。我不太确定是哪种情况,否则我会帮你的。ping的输出格式是IP-ADDRESS:RESULTS——当然,对于IPv6地址,它们已经包含了很多冒号。。。所以它很快就变得混乱起来。解决方案是ping要么将IPv6地址用方括号括起来(针对http访问完成),要么在ip地址之后和冒号之前加一个空格。当然,你犯过一次这个错误,就再也不会犯了……把它变成2620:0:1cfe:face:b00c::3:0而不是正确的2620:0:1cfe:face:b00c::3,它现在也是一个完全不同的地址:)