Я использую сторонний набор библиотек, который был глупо жестко запрограммирован для вызова GetHostEntry.AddressList [0] для локального IP-адреса. Также не написано для поддержки IPv6. Я отключил IPv6 на всех моих сетевых интерфейсах, но 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
Есть предложения? Изменение кода сторонней библиотеки мне недоступно.