博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬取Ip地址对应的物理位置等信息-百度服务器
阅读量:4288 次
发布时间:2019-05-27

本文共 1989 字,大约阅读时间需要 6 分钟。

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

对于国内的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,中文版,默认的编码是gb2312Console.WriteLine(Encoding.Default.BodyName);//gb2312

你可能感兴趣的文章
Python sys.path、sys.modules模块介绍
查看>>
python元组遍历
查看>>
python字典用法总结
查看>>
python异常处理
查看>>
python sys.exc_info()详解
查看>>
python中os模块作用
查看>>
ubuntu python subprocess模块执行python脚本
查看>>
python xticks()函数设置X轴方法--刻度、标签
查看>>
HTTP协议原理
查看>>
Python核心模块——urllib模块
查看>>
Python中read()、readline()和readlines()三者间的区别和用法
查看>>
python正则表达式模块re
查看>>
python爬虫总结
查看>>
python网络编程基础--http
查看>>
python 构造http请求对象-Request对象
查看>>
解决Ubuntu16.04更新源时显示“暂时不能解析域名”问题
查看>>
Ubuntu16.04运行清空文件命令时提示权限不够解决方法
查看>>
shell脚本编写笔记
查看>>
rpm、dpkg、yum、apt比较
查看>>
expect详解
查看>>