当多个 IP 地址分配给 PC 时,即如果 PC 是多宿主的,如何获得不包括 127.0.0.1 环回地址的默认 IP 地址。
以下代码在一台 PC 上返回正确的默认 IP 地址,但在另一台 PC 上返回不正确的 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;
}