根据Dotnet参考,
Dns.GetHostAddresses("")
应该返回IPv4地址。但是我在Windows 7机器上只获得了IPv6。我在不同的Windows 7上尝试了该程序仍然是相同的结果。它只在XP机器上正确返回IPv4。
如果我试试,
Dns.GetHostEntry("");
现在可正确返回一个IPv4和一个IPv6。 如何从GetHostAddresses()获取IPv4,因为我不想使用GetHostEntry()。它查找DNS。
另外,对于具有1个网卡的计算机,代码返回2个相同IPv6的数组。这是正常的吗?
答案 0 :(得分:1)
这对我有用:
IPHostEntry ipHostEntry = Dns.GetHostEntry("example.com");
IPAddress ipAddress = ipHostEntry.AddressList.First(a => a.AddressFamily == AddressFamily.InterNetwork); // ipv4
拥有两个ipv6地址是正常的,一个包含保证其唯一性的MAC地址,另一个不增加您的隐私/安全性。但我不知道为什么你的相同。