爬取Ip地址对应的物理位置等信息-百度服务器

说明百度服务器获取的Ip地址信息

对于国内的Ip地址返回省市和运营商

对于国外地址只返回国家名称,在线实例:http://www.gongjuji.net/ip/

1.爬取信息来源:百度的IP地址查询数据


数据说明:

//请求地址
// https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=119.162.11.124&co=&resource_id=6006&t=1478145571872&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=jQuery110204481323950024978_1478145442947&_=1478145442951
//相应内容
// jQuery110204481323950024978_1478145442947({ "status":"0","t":"1478145571872","set_cache_time":"","data":[{"location":"山东省济南市 联通", "titlecont":"IP地址查询", "origip":"119.162.11.124", "origipquery":"119.162.11.124", "showlamp":"1", "showLikeShare":1, "shareImage":1, "ExtendedLocation":"", "OriginQuery":"119.162.11.124", "tplt":"ip", "resourceid":"6006", "fetchkey":"119.162.11.124", "appinfo":"", "role_id":0, "disp_type":0}]});
解析实例代码:

string ip = "119.162.11.124";   //山东省济南市 联通
//string ip = "118.184.180.46"; //江苏省常州市 电信
//string ip = "192.30.253.113"; //美国
string url = string.Format(" https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query={0}&co=&resource_id=6006&t=1478145571872&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=jQuery110204481323950024978_1478145442947&_=1478145442951", ip);

//获取返回内容
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
string result = "";
//注意,此处使用的编码是:gb2312
//using (StreamReader reader = new StreamReader(stream, Encoding.Default))
using (StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("gb2312")))
{
    result = reader.ReadToEnd();
}
//去除json的函数名称
int start = result.IndexOf("{");
int end = result.LastIndexOf("}");
string temp = result.Substring(start, end - start + 1);
Console.WriteLine(temp);
//解析Json结果
JObject obj = JObject.Parse(temp);
JArray data = obj["data"] as JArray;
if (data != null)
{
    JObject dataObj = data[0] as JObject;
    Console.WriteLine(dataObj["location"]);
}


编码说明:

//win10,中文版,默认的编码是gb2312
Console.WriteLine(Encoding.Default.BodyName);//gb2312


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值