C#调用免费接口查询计算机外网IP

接口一:https://api.ip.sb/ip

/// 
        /// 通过ip.sb查询外网IP
        /// 
        /// 
        public static string GetIP()
        {
            string url = "https://api.ip.sb/ip";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Timeout = 30000;
            request.Proxy = null;
            request.KeepAlive = false;
            request.Method = "GET";
            request.ContentType = "application/json; charset=UTF-8";
            request.AutomaticDecompression = DecompressionMethods.GZip;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string result = "";
            try
            {
                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
                result = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();
            }
            catch (Exception)
            {
            }
            finally
            {
                if (response != null)
                    response.Close();
                if (request != null)
                    request.Abort();
            }
            return result;
        }

接口二:http://pv.sohu.com/cityjson?ie=utf-8

/// 
        /// 通过搜狐网(sohu.com)查询外网IP
        /// 
        /// 
        public static string GetIPBySohu()
        {
            string url = "http://pv.sohu.com/cityjson?ie=utf-8";
            string result = "";
            WebRequest wrt = null;
            WebResponse wrp = null;
            try
            {
                wrt = WebRequest.Create(url);
                wrt.Credentials = CredentialCache.DefaultCredentials;
                wrp = wrt.GetResponse();
                StreamReader sr = new StreamReader(wrp.GetResponseStream(), Encoding.Default);
                string html = sr.ReadToEnd();
                string pattern = "{\"cip\": \"(?.*?)\", \"cid\": \"(?.*?)\", \"cname\": \"(?.*?)\"}";
                Regex regex = new Regex(pattern, RegexOptions.None);
                Match match = regex.Match(html);
                //ip
                result = match.Groups["key1"].Value;
            }
            catch (Exception) {
            }
            finally
            {
                if (wrp != null)
                    wrp.Close();
                if (wrt != null)
                    wrt.Abort();
            }
            return result;
        }

接口三:http://ip-api.com/json/?lang=zh-CN

/// 
        /// 通过ip-api.com查询外网IP
        /// 
        /// 
        public static string GetIPAddress()
        {
            string url = "http://ip-api.com/json/?lang=zh-CN";
            string result = "";
            WebRequest wrt = null;
            WebResponse wrp = null;
            try
            {
                wrt = WebRequest.Create(url);
                wrt.Credentials = CredentialCache.DefaultCredentials;

                wrp = wrt.GetResponse();
                StreamReader sr = new StreamReader(wrp.GetResponseStream(), Encoding.UTF8);
                //获取到的是Json数据
                string html = sr.ReadToEnd();

                //Newtonsoft.Json读取数据
                JObject obj = JsonConvert.DeserializeObject(html);
                result = obj["query"].ToString();
            }
            catch (Exception)
            {
            }
            finally
            {
                if (wrp != null)
                    wrp.Close();
                if (wrt != null)
                    wrt.Abort();
            }
            return result;
        }

 

你可能感兴趣的:(C#)