Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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());
        }
Beispiel #4
0
        /// <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);
        }
Beispiel #5
0
        /// <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);
        }