通过IP获取所在的国家,州,地区

备注:此博客为转载,原作者地址请点击此处

得到真实外网IP、IP所在国家、省份、地区

  1. #region##得到真实IP以及所在地详细信息      
  2.    ///       
  3.    /// 得到真实IP以及所在地详细信息(Porschev)      
  4.    ///       
  5.    ///       
  6.    public string GetIpDetails()      
  7.    {          
  8.        string url = "http://www.ip138.com/ips8.asp";   //设置获取IP地址和国家源码的网址          
  9.        string regStr = "(?<=)[^<]*?(?=

    )"
    ;            
  10.        string ipRegStr = "((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)";    //IP正则                  
  11.        string ip = string.Empty;   //IP地址          
  12.        string country = string.Empty;  //国家          
  13.        string adr = string.Empty;   //省市          
  14.        string html = GetHtml(url);       //得到网页源码          
  15.        Regex reg = new Regex(regStr, RegexOptions.None);                 
  16.        Match ma = reg.Match(html);        html = ma.Value;                
  17.        Regex ipReg = new Regex(ipRegStr, RegexOptions.None);          
  18.        ma = ipReg.Match(html);          
  19.        ip = ma.Value;     //得到IP          
  20.        int index = html.LastIndexOf(":") + 1;          
  21.        country = html.Substring(index);                   //得到国家          
  22.        adr = GetAdrByIp(ip);          
  23.        return "IP:" + ip + "  国家:" + country + "  省市:" + adr;     
  24.    }          
  25.    #endregion     
  26.  
  27.    #region##通过IP得到IP所在地省市      
  28.    ///       
  29.    /// 通过IP得到IP所在地省市(Porschev)      
  30.    ///       
  31.    ///       
  32.    ///       
  33.    public string GetAdrByIp(string ip)      
  34.    {          
  35.        string url = "http://www.cz88.net/ip/?ip=" + ip;          
  36.        string regStr = "(?<=).*?(?=)";                  
  37.        string html = GetHtml(url);       //得到网页源码          
  38.        Regex reg = new Regex(regStr, RegexOptions.None);          
  39.        Match ma = reg.Match(html);                  
  40.        html = ma.Value;            
  41.        string[] arr = html.Split(' ');          
  42.        return arr[0];      
  43.    }      
  44.    #endregion      
  45.     
  46.    #region##获取HTML源码信息      
  47.    ///       
  48.    /// 获取HTML源码信息(Porschev)      
  49.    ///       
  50.    /// 获取地址      
  51.    /// HTML源码      
  52.    public string GetHtml(string url)      
  53.    {          
  54.        Uri uri = new Uri(url);          
  55.        WebRequest wr = WebRequest.Create(uri);          
  56.        Stream s = wr.GetResponse().GetResponseStream();          
  57.        StreamReader sr = new StreamReader(s, Encoding.Default);                  
  58.        return sr.ReadToEnd();      
  59.    }      
  60.    #endregion  
				
				

你可能感兴趣的:(大数据)