C# 在C中从DNS服务器返回IPv6地址#

C# 在C中从DNS服务器返回IPv6地址#,c#,dns,ipv6,C#,Dns,Ipv6,在将我的应用程序迁移到IPv6环境中时,我面临一些不寻常的问题 我正在使用.NET远程处理连接到提供主机名的远程服务。该主机名(ipv6.dt112979.company)在我的DNS服务器(在网卡和DNS中启用了ipv6的Windows 2003服务器上运行)上注册为AAAA主机 问题是,每次我尝试连接到该服务器时,都会得到一个“不知道这样的主机”。我已设置Wireshark,未发出DNS查询。我做了一个“ipconfig/flushdns”,观察到了相同的结果 因此,我创建了一个简单的应用程

在将我的应用程序迁移到IPv6环境中时,我面临一些不寻常的问题

我正在使用.NET远程处理连接到提供主机名的远程服务。该主机名(ipv6.dt112979.company)在我的DNS服务器(在网卡和DNS中启用了ipv6的Windows 2003服务器上运行)上注册为AAAA主机

问题是,每次我尝试连接到该服务器时,都会得到一个“不知道这样的主机”。我已设置Wireshark,未发出DNS查询。我做了一个“ipconfig/flushdns”,观察到了相同的结果

因此,我创建了一个简单的应用程序,它可以:

Dns.GetHostAddresses("ipv6.dt112979.company");
结果总是“找不到这样的主机”

我做了一次NSLOOKUP,结果是:

nslookup ipv6.dt112979.company
Server:  company-dev03.company
Address:  10.200.10.207

Name:    ipv6.dt112979.company
Address:  fe80::a5c3:bfde:5ece:e833
你知道问题出在哪里吗? 我已经用.NET3.5和.NET4.0对此进行了测试,问题是相同的。 测试是在Windows7机器上进行的

如果我有ipv6.dt112979.company的a记录,则调用成功,但只返回IPv4地址

致以最良好的祝愿,
Nuno Centeio

Dns.GetHostAddresses
返回一个IPaddress值数组,您确定要遍历所有这些值吗

此外,如果本地计算机不支持IPv6,则在使用
Dns.GetHostAddresses
时,会从结果列表中筛选IPv6结果。您提到您已确保远程主机支持IPv6,但您确定您的本地主机也支持IPv6吗?

我解决了问题。 我没有处于完全启用的IPv6网络中。我依赖于私有地址(FE80::),尽管能够执行ping和nslookup,但看起来Winsocks2不喜欢这样

我已将Cisco UBE配置为具有真正的IPv6网络,并且一切都按预期开始工作


感谢您的帮助。

我正在打印OSSupportsIPv6,它返回True。由于函数抛出SocketException,因此无法遍历结果。我的主机支持IPv6。。。我可以用IPv6 ping远程主机(在Wireshark中得到验证),也可以将桌面远程连接到其他IPv6主机,……您确定您的开发机器上安装并启用了IPv6吗?如果没有,您将返回“无主机异常”消息也就不足为奇了。@GregoryABeamer是的,我确定。我正在打印OSSupportsIPv6,它返回True。另外,我可以使用“ping-6IPv6.dt112979.company”并用Wireshark证明所有通信都使用ipv6。我想知道。。。这可能是因为我没有完全启用IPv6网络吗?我想我在所有主机上都使用Teredo。。。