1

根据 Dotnet 参考,

Dns.GetHostAddresses("") 

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

如果我尝试,

Dns.GetHostEntry("");

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

另外,假设有 1 个网卡的计算机,代码返回一个包含 2 个相同 IPv6 的数组。这是正常的吗?

4

1 回答 1

2

这对我有用:

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

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

于 2013-08-22T00:32:37.677 回答