Как получить IP-адрес по умолчанию, исключающий кольцевой адрес 127.0.0.1, если для ПК назначены mutliple IP-адреса, если компьютер является многоточечным.Как получить IP-адрес по умолчанию при назначении нескольким IP-адресам на ПК
Следующий код возвращает правильный IP-адрес по умолчанию на одном ПК, но возвращает неправильный IP-адрес на другом ПК, поэтому должно быть какое-то другое решение.
private string[] GetDefaultIPWithSubnet()
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
string[] ipSubnet = new string[2];
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"])
{
try
{
string[] ips = (string[])mo["IPAddress"];
string[] subnets = (string[])mo["IPSubnet"];
ipSubnet[0] = ips[0].ToString();
ipSubnet[1] = subnets[0].ToString();
break;
}
catch (Exception ex)
{
return null;
}
}
}
return ipSubnet;
}
Каково определение ip-адреса по умолчанию для компьютера? Я бы сказал 127.0.0.1, но вам может понадобиться что-то еще ... PS: Возможно, вам стоит взглянуть на это: http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface .aspx –
Здесь я имел в виду тот, который мы используем для LAN/internet, исключая адрес loopback 127.0.0.1. – Coder
И что, если у вас есть два сетевых интерфейса, что очень часто встречается на серверных машинах. Какой из них по умолчанию? Я пытаюсь указать вам направление, поэтому вы понимаете, что такой вещи нет. Вы должны получить все IP-адреса и выяснить, какие из них вам интересны. –