【发布时间】:2011-08-24 12:51:45
【问题描述】:
我正在寻找一个以 IPv6 地址作为参数并返回域名的函数。
为了清楚起见,2a00:1450:8006::68 返回 ipv6.google.com。
(目的是将此域名提供给 getaddrinfo 函数。)
谢谢:-)
edit1 : 我试过 getaddrinfo("2a00:1450:8006::68", "http", NULL, &result); ,它返回“不支持主机名的地址族”,getaddrinfo("ipv6.google.com", "http", NULL, &result); 返回错误“没有地址与热名相关联”。
EDIT2:我同意你的观点,我在使用 IPV6 系统时遇到了问题,我尝试过 http://test-ipv6.com/,但似乎我没有 IPV6 地址,但使用 ifconfig 它返回:
adr inet6: fe80::15b:fcff:fe65:d516/64 Scope:Lien
【问题讨论】:
-
对我来说似乎是一种迂回的方式来获取地址结构。为什么不直接将“2a00:1450:8006::68”传递给
getaddrinfo? -
听起来您的机器和/或网络不支持 IPv6 - 它应该可以工作吗?
-
不知道你的代码,但我应该提到 2a00:1450:8006::68 实际上没有反向 DNS。如果您实际尝试使用具有反向 DNS 的 IPv6 地址,将会有所帮助。
-
如果您的堆栈甚至能够支持 IPv6,那么绝对每个接口都会获得 fe80::/64 范围内的 IPv6 地址。
-
制作 fe80::/10。不同的消息来源说不同的事情。但我相信标准说 fe80::/10。
标签: c networking network-programming ipv6 getaddrinfo