如上图,就是现在打开下面的百度高精度IP定位服务的API首页的提示。
ip定位历史
关于IP定位,最早是通过运营商实现,每个运营商申请到的ip段,在某个范围内使用。
因此早期只能是国家为单位的基础数据。
对于比较大的国家,就进一步划分,比如,中国某通讯公司(不打广告),固定将某些ip分配某些机房使用,而这些机房则具备地域属性,因此就可以知道某些ip的位置是哪个省市区。
在进一步,网上有种测算路由的方式进行定位,就是由大范围逐个跳转,跟踪路由。从而对比找出ip所在的小范围。
前提条件
如今,网络铺设已经有个相当多的特性,比如:
A.国内的某大运营商,ip资源够用,直接给用户分配公网ip。我以前就在这种网络下用动态域名工具玩过网站。
B.部分运营上为了缓解ip资源不足问题,某个大范围使用代理转发方式,给到用户的是私网ip,用户最终用代理的ip池的ip访问公网。
C.电话运营商,ip资源利用率过低,几乎是一个省份用一个ip池进行代理给用户的手机网络上网
延伸价值
随着大数据的发展,百度做了大数据匿名收集数据,数据实时分析。因此可以将手机收集到的精准GPS数据和当前所用IP数据成对上报给后端服务器,运算过之后,就可以得出某个IP的分布范围数据。
误差说明:
对于上述A的情况,精确度可以达到几十米
对于上述B的情况,可能得覆盖一个城市的范围
对于上述C的情况,往往是一个省份的误差程度
因此,对于有线宽带用户,分配了相对固定的公网IP,用户在这个线路下有放置了wifi无线路由器,wifi下有接入了手机用户,手机里运行了百度的服务,比如百度地图,或者百度地图SDK。
其定位精度就可以达到几十米范围。对于这种数据,只有bat这种大头才能实现的了这个规模的数据手机,因此准确度几乎无法被超越,更大的互联网公司除外
定位分析
目前百度定位提供了WIFI,基站,GPS等多种定位方式,适用于室内、室外多种定位场景,具有出色的定位性能:定位精度高(其实我是想吐槽的)、覆盖率广、网络定位请求流量小、定位速度快。
众所周知,通过IP地址我们只能查到某一个市级城市的宽带服务商所在地。
但是,百度高精度定位却能产生近乎30m内的定位精度,这是为什么呢?
百度高精度定位产生
百度官方文档显示:2016年8月26日,高精度IP定位服务API正式上线。
百度高精度IP定位服务,其根本来源于百度匿名收集服务,它的源头则是:手机位置服务。当然,不排除百度其他应用的sdk,百度的其他应用如百度地图,也进行了这个匿名收集服务,至少百度收集这些数据并非出于泄露隐私目的,毕竟这项数据单方面来说是脱敏的,就好比是网络上一张盖住脸的裸体照片。但是,大数据发展导致我们可以用各个数据源去拼凑一个完整画像,有意无意导致一个泄露隐私的结果。
因此百度在接到投诉后,首先将高精度 IP 定位接口的配额大幅下调,其次,很快就关停了新用户开通这项服务。
在百度高精度IP定位服务刚上线的 2016 年 9 月、10月,那时候百度给的的配额还相对较高,公开申请:
认证企业开发者10W 次 /天,认证个人开发者1W 次 /天,非认证用户通过手机验证1k 次 /天。
但是不确定在2016年10月份或11月份某一天,百度直接下调到:
认证企业开发者300次/天,认证个人开发者100次/天,非认证用户数据不详。
然而在2016年12月10号前百度撤销了官方api文档,并停止了该服务的ak权限的申请,之前已经申请了的权限的ak仍可继续使用。推测原因是这项功能推出后,被太多人用来达成不良目的所导致(例如定位QQ,微信,陌陌等社交账号所在位置)。然而像类似于任天堂《Pokemon Go》这款LBS-AR游戏并没有很好地去使用这一服务。
何去何从
针对现状来看,百度的这项服务,目前推测有2个方向:
1,关停(停止新接入或者整个服务对外关停)。
2,整顿权限(以更严格的审核方式对外提供)
更新:2017年7月起,开发者陆续收到百度终止高精度IP定位服务API的通知邮件。
至此,百度高精度定位服务正式退出历史舞台。
原文:
亲爱的开发者,您好!
我们很抱歉的通知您,目前您正在使用的「高精度IP定位服务API,后文简称本服务」,由于国家《网络安全法》等法律法规的要求,及出于保护用户权益和安全性的考量,我们将终止您对「本服务」的使用权限。具体终止时间为2017年7月28日。如有疑问,可发送邮件到mapapi@baidu.com 咨询。
如果您在自身业务中已使用「本服务」,为避免业务受损,请在2017年7月28日前迁移到其他服务使用;如果您从未使用过「本服务」,请忽略本通告的内容。
如果您同时还使用了百度地图开放平台所提供的其他服务,请不用担心,「本服务」的使用权限终止不会影响您对其他服务的使用。
最后,再次感谢您对百度地图开放平台长期以来的信赖与支持!
百度高精度ip定位API
下面提供了百度高精度ip定位的API供参考
1、申请百度账号,创建应用,获取密钥(AK)
http://lbsyun.baidu.com/apiconsole/key
启用服务:可以根据自己需求来钩选,这里先全选了。
请求校验方式:IP白名单校验/SN检验,这里选择IP白名单校验。即在下面填上你访问机器的IP地址。如(114.114.114.114)。
单击提交,获得AK
2、详细API:
服务地址:
http://api.map.baidu.com/highacciploc/v1
https://api.map.baidu.com/highacciploc/v1
参数:
qcip待定位IP 可选 如果为空则针对定位服务的IP进行定位
ak开发者密钥,即前面申请的东西
extensions返回结果扩展设定(可选):
0
:只返回基础定位结果(默认)
1
:返回基础定位结果+地址信息
2
:返回基础定位结果+周边POI信息
3
:返回基础定位结果+地址信息+POI信息
这里我们用1
coord返回坐标类型(可选):
bd09
百度墨卡托坐标(默认)
bd09ll
百度经纬度坐标
gcj02
国测局经纬度坐标
完整调用:
在浏览器地址栏输入以下网址
https://api.map.baidu.com/highacciploc/v1?qcip=220.181.38.113&ak=你申请的AK&extensions=1&coord=bd09ll
获取结果如下:
返回值说明:
这里默认用的是返回json格式的数据。