C# 根据IP获取省市的代码

发布时间:2020-12-06编辑:脚本学堂
C# 根据IP获取省市的代码,有需要的朋友可以参考下。

C# 根据IP获取省市的代码,有需要的朋友可以参考下。

1、得到真实IP以及所在地详细信息
 

复制代码 代码如下:

/// <summary>        
/// 得到真实IP以及所在地详细信息(Porschev)        
/// </summary>        
/// <returns></returns>        
public string GetIpDetails() 

    //设置获取IP地址和国家源码的网址          
    string url = "http://www.ip138.com/ips8.asp";  
    string regStr = "(?<=<tds*align="center">)[^<]*?(?=<br/><br/></td>)"; 

    //IP正则
    string ipRegStr = "((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)";      

    //IP地址                
    string ip = string.Empty;   

    //国家           
    string country = string.Empty; 

    //省市            
    string adr = string.Empty;  

    //得到网页源码            
    string html = GetHtml(url);                   
    Regex reg = new Regex(regStr, RegexOptions.None); 
    Match ma = reg.Match(html); html = ma.Value; 
    Regex ipReg = new Regex(ipRegStr, RegexOptions.None); 
    ma = ipReg.Match(html);

    //得到IP 
    ip = ma.Value;                 
    int index = html.LastIndexOf(":") + 1; 

    //得到国家
    country = html.Substring(index);                              
    adr = GetAdrByIp(ip); 
    return "IP:" + ip + "  国家:" + country + "  省市:" + adr; 
}

2、通过IP得到IP所在地省市
 

复制代码 代码如下:

/// <summary>        
/// 通过IP得到IP所在地省市(Porschev)        
/// </summary>        
/// <param name="ip"></param>        
/// <returns></returns>        
public string GetAdrByIp(string ip) 

    string url = "http://www.cz88.net/ip/?ip=" + ip; 
    string regStr = "(?<=<spans*id="cz_addr">).*?(?=</span>)"; 

    //得到网页源码
    string html = GetHtml(url);                   
    Regex reg = new Regex(regStr, RegexOptions.None); 
    Match ma = reg.Match(html); 
    html = ma.Value; 
    string[] arr = html.Split(' '); 
    return arr[0]; 
}

3、获取HTML源码信息
 

复制代码 代码如下:
/// <summary>       
/// 获取HTML源码信息(Porschev)       
/// </summary>       
/// <param name="url">获取地址</param>       
/// <returns>HTML源码</returns>       
public string GetHtml(string url)
{
    string str = "";
    try
    {
        Uri uri = new Uri(url);
        WebRequest wr = WebRequest.Create(uri);
        Stream s = wr.GetResponse().GetResponseStream();
        StreamReader sr = new StreamReader(s, Encoding.Default);
        str = sr.ReadToEnd();
    }
    catch (Exception e)
    {
    }
    return str;
}