C#根据IP获取归属地
由于Ip138网址后台代码的变化 具体为编码变成了UTF-8 ,我想通过网站截取归属地而不能实现 不怎么懂正则表达式的抓取。这是以前的现在不能用了希望得到解决Regex regex = new Regex("<td align=\"center\"><ul class=\"ul1\"><li>本站数据:(?<title>.*?)</li>");
不一定要IP138的 试试其他的IP138我现在也获取不到了 http://www.cz88.net/ip/index.aspx?ip=113.132.118.250这个地址也可以
我刚改了下 试试这个
/// <summary>
/// 获取IP归属地
/// </summary>
/// <param name="Ip">IP地址</param>
/// <returns></returns>
public string GetIpAddRess(string Ip)
{
WebRequest request = WebRequest.Create("http://www.138.com/ips138.asp?ip=" + Ip);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
string read = reader.ReadToEnd();
//string read = "<table width=\"80%\"border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\"><tr><td align=\"center\"><h3>ip138.com IP查询(搜索IP地址的地理位置)</h3></td></tr><tr><td align=\"center\"><h1>您查询的IP:113.132.118.250</h1></td></tr><tr><td align=\"center\"><ul class=\"ul1\"><li>本站数据:陕西省西安市电信</li><li>参考数据1:陕西西安电信</li><li>参考数据2:陕西省西安市 电信</li></ul></td></tr><tr><td align=\"center\"><a href=\"/idc/\" target=\"_blank\"><b><font color=\"red\">idc公司大全</font></b></a> | <a href=\"http://user.ip138.com/ip/\" target=\"_blank\"><b>ip查询公测接口</b></a></td></tr><tr>";
Regex regex = new Regex("<li>参考数据1:(?<title>.*?)</li>");
if (regex.IsMatch(read))
{
read = regex.Match(read).Groups["title"].Value;
}
return read;
}
页:
[1]