/// <summary> /// 获取指定连接名称的IPv4地址 /// </summary> /// <param name="pConnID"></param> /// <returns></returns> public static string[] GetIPV4Addresses(string pConnID) { // 根据名称获取网卡序号 List <Win32Provider.Win32_NetworkAdapter> list = Win32Provider.ProviderHelper <Win32Provider.Win32_NetworkAdapter> .GetAll(); if (list == null || list.Count == 0) { return(null); } Win32Provider.Win32_NetworkAdapter obj = list.FirstOrDefault(o => o.NetConnectionID == pConnID); if (obj == null) { return(null); } // 根据网卡MAC地址获取网卡信息 List <Win32Provider.Win32_NetworkAdapterConfiguration> listConfig = Win32Provider.ProviderHelper <Win32Provider.Win32_NetworkAdapterConfiguration> .GetAll(); if (listConfig == null || listConfig.Count == 0) { return(null); } Win32Provider.Win32_NetworkAdapterConfiguration objConfig = null; foreach (var config in listConfig) { if (config.MACAddress == obj.MACAddress && config.IPAddress != null && config.IPAddress.Length > 0) { objConfig = config; } } if (objConfig == null || objConfig.IPAddress == null || objConfig.IPAddress.Length == 0) { return(null); } // 返回IP地址 List <string> result = new List <string>(); // 冒号为IPv6,.为IPv4 foreach (string ip in objConfig.IPAddress) { if (ip.Contains(".")) { result.Add(ip); } } if (result.Count > 0) { return(result.ToArray()); } return(null); }
/// <summary> /// 根据网卡MAC地址获取网卡序号。mac的格式为xx:xx:xx:xx:xx:xx /// 如果指定的连接名称不存在,返回-1。 /// </summary> /// <param name="pMac"></param> /// <returns></returns> public static Int32 GetAdapterIndex_ByMacAddress(string pMac) { List <Win32Provider.Win32_NetworkAdapter> list = Win32Provider.ProviderHelper <Win32Provider.Win32_NetworkAdapter> .GetAll(); if (list == null || list.Count == 0) { return(-1); } Win32Provider.Win32_NetworkAdapter obj = list.FirstOrDefault(o => o.MACAddress == pMac.ToUpper()); if (obj == null) { return(-1); } return((Int32)obj.Index); }
/// <summary> /// 根据网卡连接ID禁用网卡 /// </summary> /// <param name="pConnID">网卡连接ID</param> /// <returns></returns> public static Boolean Disable_ByConnectionID(string pConnID) { List <Win32Provider.Win32_NetworkAdapter> list = Win32Provider.ProviderHelper <Win32Provider.Win32_NetworkAdapter> .GetAll(); if (list == null || list.Count == 0) { return(false); } Win32Provider.Win32_NetworkAdapter obj = list.FirstOrDefault(o => o.NetConnectionID == pConnID); if (obj == null) { return(false); } return(obj.Disable()); }
/// <summary> /// 根据连接名称获取MAC地址 /// </summary> /// <param name="pConnID">网卡连接名称</param> /// <returns></returns> public static string GetMACAddress(string pConnID) { List <Win32Provider.Win32_NetworkAdapter> list = Win32Provider.ProviderHelper <Win32Provider.Win32_NetworkAdapter> .GetAll(); if (list == null || list.Count == 0) { return(string.Empty); } Win32Provider.Win32_NetworkAdapter obj = list.FirstOrDefault(o => o.NetConnectionID == pConnID); if (obj == null) { return(string.Empty); } return(obj.MACAddress); }
/// <summary> /// 根据网卡的连接名称获取网卡的序号。 /// 如果指定的连接名称不存在,返回-1。 /// </summary> /// <param name="pConnID"></param> /// <returns></returns> public static Int32 GetAdapterIndex_ByNetConnectionID(string pConnID) { List <Win32Provider.Win32_NetworkAdapter> list = Win32Provider.ProviderHelper <Win32Provider.Win32_NetworkAdapter> .GetAll(); if (list == null || list.Count == 0) { return(-1); } Win32Provider.Win32_NetworkAdapter obj = list.FirstOrDefault(o => o.NetConnectionID == pConnID); if (obj == null) { return(-1); } return((Int32)obj.Index); }