コード例 #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);
        }
コード例 #2
0
        /// <summary>
        /// 获取本机活动网卡的IPv4地址
        /// </summary>
        /// <returns></returns>
        public static string[] GetIPV4Addresses()
        {
            List <Win32Provider.Win32_NetworkAdapterConfiguration> list = Win32Provider.ProviderHelper <Win32Provider.Win32_NetworkAdapterConfiguration> .GetAll();

            if (list == null || list.Count == 0)
            {
                return(null);
            }


            Win32Provider.Win32_NetworkAdapterConfiguration obj = list.FirstOrDefault(o => o.IPEnabled == true);
            if (obj == null)
            {
                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);
        }