C# WMI通过网络连接名称获取IP掩码网关

时间:2022-10-26 09:31:20
/// <summary>
/// 读取IP,掩码,网关地址
/// </summary>
/// <param name="netConnectorName"></param>
/// <param name="ip"></param>
/// <param name="mask"></param>
/// <param name="gateway"></param>
public void GetIPAddress(string netConnectorName,out string ip, out string mask, out string gateway)
{
ip = string.Empty;
mask = string.Empty;
gateway = string.Empty; string guid;
var find = FindNetConnectorGUID(netConnectorName, out guid);
if (!find) return ; ManagementClass wmi = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = wmi.GetInstances();
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
foreach (ManagementObject mo in moc)
{
//如果没有启用IP设置的网络设备则跳过
//if (!(bool)mo["IPEnabled"])
// continue; var m = mo["SettingID"];
if ((m != null) && (m.ToString() == guid))
{ //比价是否一致
ip = ((string[])mo["IPAddress"])[];
mask = ((string[])mo["IPSubnet"])[];
gateway = ((string[])mo["DefaultIPGateway"])[];
return;
}
}
}

根据网络连接名称,使用wmi方式获取对应的网络连接配置信息