我这个博客在评论的时候会获取评论人的IP,并做个地理位置标注,这个需求很普遍很简单,也不需要精度,有个大概省市区就好了。一直都没找到合适的IP查询接口,以前IP138免费,后来这条路就走不通了,直接去爬这路也都断了,后来陆续网站少了诸如新浪,淘宝等接口,多数都不稳定。稳定的又是要收费的,倒是在聚合数据上发现也有挺便宜的接口卖,原打算接入。这不最近调百度地图接口看到竟然百度也提供了IP普通定位接口,关键是不要钱,你说这不香吗?这也不算个教程,话不多说,干。
用的百度账户登录就行,然后创建一个应用,得到一个AK,后面要用。如图
创建完应用后,点击顶部开发文档,随便点个文档进去,会有一个开发文档列表,找到普通IP定位服务,打开服务文档,就能看到接口地址了。
文档上有标准的接口返回信息,保险起见还是调试下接口数据吧。得到的数据内容和文档上一致。
就一个CURL没啥好说的,自己构造一下就完事了。这里说明一下拿到的数据,比如上图我的这个,CN|上海|上海|None|CHINANET|0|0,很显然百度对外提供的只到地级市,区县级没有提供,我测试了很多IP,区县级数据都是None,这也可以理解,毕竟基础运营商是按地级市公司做运营主体的。所以IP归属也都是地级市级别,不过这对我够用了。第二就是网络运营商,都是用的运营商代码简称。比如电信用的是CHINANET。我通过百度统计获取了大部分运营商的代码,列表如下,免得你去找了。
CHINANET | 中国电信(电信通) |
UNICOM | 中国联通(网通) |
CMNET | 中国移动(铁通) |
CERNET | 教育网 |
BJENET | 北京教育信息网 |
WASU | 华数宽带(主要是浙江) |
COLNET | 东方有线(主要是上海) |
FOUNDERBN | 方正宽带(主要是北京) |
TOPWAY-NET | 天威视讯(主要是深圳) |
DXTNET | 长城宽带、歌华有线等二级接入商 |
水完,睡觉,抗击疫情为国贡献去了~