當多個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地址,並找出你感興趣的是哪一個。 –