Dns.GetHostAddresses()仅返回IPv6地址。如何获得本地IPv4?

时间:2013-08-22 00:22:53

标签: c# .net ip-address ipv6 ipv4

根据Dotnet参考,

Dns.GetHostAddresses("") 

应该返回IPv4地址。但是我在Windows 7机器上只获得了IPv6。我在不同的Windows 7上尝试了该程序仍然是相同的结果。它只在XP机器上正确返回IPv4。

如果我试试,

Dns.GetHostEntry("");

现在可正确返回一个IPv4和一个IPv6。 如何从GetHostAddresses()获取IPv4,因为我不想使用GetHostEntry()。它查找DNS。

另外,对于具有1个网卡的计算机,代码返回2个相同IPv6的数组。这是正常的吗?

1 个答案:

答案 0 :(得分:1)

这对我有用:

IPHostEntry ipHostEntry = Dns.GetHostEntry("example.com");
IPAddress ipAddress = ipHostEntry.AddressList.First(a => a.AddressFamily == AddressFamily.InterNetwork); // ipv4

拥有两个ipv6地址是正常的,一个包含保证其唯一性的MAC地址,另一个不增加您的隐私/安全性。但我不知道为什么你的相同