当尝试将 Facebook 的数字 IP 地址解析为测试 2620:0:1cfe:face:b00c::3:
时,如果我将终止的 0
离开地址,inet_pton()
barfs。如果我把它放回去,一切正常。
运行 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
关于c - 这是使用 IPv6 的 inet_pton 中的错误吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4822904/