我正在使用一个被愚蠢地硬编码的第三方库套件来调用 GetHostEntry.AddressList[0] 以获得本地 IP 地址。它也不是为支持 IPv6 而编写的。我在所有网络接口上禁用了 IPv6,但我的测试程序(以及第 3 方库)中的 AddressList[0] 仍然返回 {::1} 而不是我的第一个 IPv4 地址。是否有任何 Windows 设置我可以更改以解决此问题,使其表现得像 Windows XP(返回第一个 IPv4 地址)?
这是我用来验证行为的测试程序:
class Program
{
static void Main(string[] args)
{
List<string> addresses = ( from address in Dns.GetHostEntry(Dns.GetHostName()).AddressList select address.ToString() ).ToList();
foreach (string a in addresses)
{
Console.WriteLine(a);
}
Console.Read();
}
}
在 Windows XP 机器上,程序的输出是 192.168.56.1
在我的 Windows 7 机器上,程序的输出是 ::1 192.168.56.2
有什么建议么?更改第三方库代码不是我可用的选项。