【发布时间】:2011-11-17 20:42:13
【问题描述】:
使用 Dns.GetHostAddresses("fred") 时,它仅返回 IPv4 地址作为响应。如何获取 IPv6 地址?我应该使用不同的方法吗?
Socket.OSSupportsIPv6 返回 true 并且 IPv6 连接工作正常。操作系统为Windows 2008 R2,.Net版本为3.5。
【问题讨论】:
-
“fred”是否有与之关联的 IPv6 DNS 记录?
-
@Lazarus:不,我没有 - 我已将条目添加到 hosts 文件中,现在我已经解析了 ipv4 和 ipv6 地址!我如何知道是否有与主机名关联的 dns 记录?为什么“ping -6 fred”可以正常工作,而 GetHostAddresses() 却不行?
-
@ya23 我怀疑 ping 在无法解析 IPv6 时会退回到 IPv4 查找。
-
Windows 可能一直在你背后做一些偷偷摸摸的 LLMNR。始终使用 DNS。
-
@Lazarus, @ Jeremy Visser:添加 DNS 记录已解决问题。请将其发布为答案,以便我接受。如果您还可以解释为什么 ping 如此具有误导性,那就太好了 - 它可以很好地解析主机名。