当多个IP地址分配给PC时,如果PC是多宿主,如何获得除127.0.0.1环回地址之外的默认IP地址。当多个IP地址分配给PC时,如何获取默认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;
}
什么是该机器的默认IP地址的定义?我会说127.0.0.1,但你可能想要别的东西... PS:你可能想看看这个:http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface .aspx –
在这里,我的意思是我们用于局域网/互联网,不包括127.0.0.1环回地址。 – Coder
如果您有两个网络接口,这在服务器机器上非常常见。哪一个是默认的呢?我想指出你的方向,所以你明白没有这样的事情。你应该得到所有的IP地址,并找出你感兴趣的是哪一个。 –