高精度IP地址定位接口的使用场景
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高精度IP地址定位接口的使用场景相关的知识,希望对你有一定的参考价值。
说到高精度IP地址定位,其实一直不太为大家所知,一般也是通过影视作品了解到,原来可以通过IP地址对犯罪分子进行一定程度的精确定位,日常使用最多的还是基于城市定位的基础IP定位功能,这也使得一些企业机构忽视了IP地址精确定位技术对改善业务模式的价值,错失了一些发展良机,下面介绍下ip地址精确定位技术的常见使用场景。
1、基于位置的精准营销
由于固定网络市场的保有量巨大,网络用户通过固定网络接入互联网或者使用移动终端在连接WIFI的情况下,高精度IP地址定位都可以定位到互联网用户所在位置,网络平台可以应用位置信息,对互联网使用者进行基于位置的精准营销。
2、打击犯罪
不法分子在进行网络攻击时,不会主动上传自己的位置信息。此时在其他定位技术无法实现定位追踪的情况下,ip高精度定位技术能够对不法分子IP地址进行定位,让其无所遁形。
3、网络防护
ip精准定位技术,能够让数据使用者通过分析用户IP位置信息,判断用户当前IP是否具备欺诈行为。通过位置核验再配合传统的多重验证技术,减少网络支付、交易、登录等因欺诈行为产生的风险行为。也为金融领域的征信业务提供判断支持,避开“羊毛党”,减少坏账率。
有IP精确定位需求的用户可选择 天眼数聚 这类正规授权api接口平台,选择对应的ip地址查询接口进行查询。
参考技术AIP定位的原理是利用访问终端的注册信息和时延信息来估算现实中的地理位置,结合先进的定位算法服务,最高精确度能达到街道级,深受用户的喜爱。
IP定位接口 https://www.ipdatacloud.com/?utm-source=LJ&utm-keyword=?1116 是一种通过IP地址来确定设备或用户位置的技术,主要应用于以下几个方面:
广告投放:广告公司可以利用IP定位接口,根据用户的地理位置向用户投放相关的广告。例如,当用户位于某个城市时,可以向用户推送当地的特价优惠信息,以提高广告的点击率和转化率。
电子商务:电子商务公司可以利用IP定位接口,根据用户的地理位置来推荐相关的商品和服务。例如,当用户位于某个地区时,可以向其推荐当地最热门的商品和服务,以提高销售额和用户满意度。
安全管理:企业可以利用IP定位接口,识别和跟踪访问其网络的设备和用户的位置。这可以帮助企业保护其机密信息和数据,以防止未经授权的访问。
物流管理:物流公司可以利用IP定位接口,根据设备或用户的位置来确定其所在的区域和交通状况。这可以帮助物流公司优化其物流路线,提高物流效率和服务质量。
社交媒体:社交媒体公司可以利用IP定位接口,根据用户的地理位置来推荐相关的社交内容和活动。例如,当用户位于某个城市时,可以向其推荐当地的社交活动和热门话题,以提高用户参与度和活跃度。
本地化搜索服务:搜索引擎作为最常使用的工具之一,用户在搜索信息时,通过其位置,可以显示更多的本地化服务信息,比如搜索“天气”,自动显示对于IP城市的天气情况,提升搜索体验。
打击犯罪:不法分子在进行网络攻击时,不会主动上传自己的位置信息。此时在其他定位技术无法实现定位追踪的情况下,ip高精度定位技术能够对不法分子IP地址进行定位,让其无所遁形。
电子商务:用户浏览电商网站平台购物时,通过定位到用户具体城市,可以显示对应地区的商品备货情况,对于跨国电商平台来说,还可以区分不同国度,以提供不同语言、价格、支付方式等差异化服务,给用户带来更佳的购物体验。
版权保护:以在线视频网站为例,通过IP定位接口可以针对不同国家地区的用户显示对应版权的影视作品,避免出现版权纠纷,保护影视作品版权,同理也可以应用在其他网络内容版权上。
IP定位功能已经广泛应用到各种网络应用当中,但多数都停留在城市级别的IP定位,满足不了部分用户需求。近年来市场中出现了精准度更高的IP定位接口,能够查询到包含国家、省、市、街道和运营商、区号、邮编、坐标、IP风险画像等信息,适用于对定位精度要求比较高的企业用户。
有IP定位需求的用户可选择IP数据云:https://www.ipdatacloud.com/?utm-source=LJ&utm-keyword=?1116 这类正规授权api接口平台,定位精度可精确到街道。
实用技巧:如何通过IP地址进行精准定位
在甲方工作的朋友可能会遇到这样的问题,服务器或者系统经常被扫描,通过IP地址我们只能查到某一个市级城市,如下图:
当我们想具体到街道甚至门牌号,该怎么办???
偶然间发现百度地图有高精度IP定位API的接口,通过该接口我们可以通过IP地址定位到具体的地理位置,甚至能精确到门牌号及周围的标志性建筑。该接口的说明地址为:http://lbsyun.baidu.com/index.php?title=webapi/high-acc-ip
若想要使用该接口进行查询,必须先申请一个密钥(AK),如下图:
申请过程就不进行说明了。API的接口参数说明和返回参数说明也不过多的介绍,大家可以看一看。因为我想返回基础定位结果+地址信息+POI信息,所以我将请求参数extensions的值设置为3。一次完整的http请求为:http://api.map.baidu.com/highacciploc/v1?qcip=183.55.116.90&qterm=pc&ak=“你的 密钥(AK)”&coord=bd09ll&extensions=3 。请求结果如下图:
结果为json格式数据:
{"content":{"location":{"lat":23.06588,"lng":115.404586},"locid":"925a2a9e3ac5be1cf003afd23c344ab3","radius":30,"confidence":0.5,"address_component":
{"country":"中国","province":"广东省","city":"汕尾市","district":"海丰县","street":"新平路","street_number":"","admin_area_code":441521},"formatted_address":
"广东省汕尾市海丰县新平路","business":"公平"},"result":{"error":161,"loc_time":"2016-10-19 21:53:28"}}
我们需要的字段为:content字段里面的formatted_address。当然我们也可以将location里面的经度和纬度提取出来从而显示在地图上面。有的IP地址会返回pois数据,比如:183.55.116.95。返回参数如下:
{"content":{"location":{"lat":23.082367,"lng":115.466276},"locid":"3fb96555906fff3100ff21119142ccd5","radius":30,"confidence":1.0,"address_component":
{"country":"中国","province":"广东省","city":"汕尾市","district":"海丰县","street":"S335","street_number":"","admin_area_code":441521},"formatted_address":
"广东省汕尾市海丰县S335","pois":[{"name":"双墩村","address":"汕尾市海丰县三三五省道","tag":"行政地标;村庄","location":{"lat":23.082422,"lng":115.465348},"uid":
"18010998377147269119"},{"name":"双墩村委会","address":"汕尾市海丰县","tag":"政府机构;各级政府","location":{"lat":23.083394,"lng":115.465914},"uid":"17661602
237861855231"},{"name":"长联塘尾","address":"汕尾市海丰县","tag":"行政地标;村庄","location":{"lat":23.081358,"lng":115.467315},"uid":"18010998372852301823"},
{"name":"双墩小学","address":"335省道附近","tag":"教育培训;小学","location":{"lat":23.083336,"lng":115.465061},"uid":"17661601958688980991"},{"name":"大溪头",
"address":"汕尾市海丰县","tag":"行政地标;村庄","location":{"lat":23.090326,"lng":115.465995},"uid":"18010998368557334527"}],"location_description":"双墩村东
104米"},"result":{"error":161,"loc_time":"2016-10-19 22:03:31"}}
此时我们可以把pois字段也提取出来,值得注意的是pois为数组,我们可以遍历数组数据。
通过上面的分析,用python简单的写了一个脚本,具体代码如下:
# -*- coding:utf-8 -*- # author:allen权 import sys import urllib2 import json def get_ip_information(ip): url=‘http://api.map.baidu.com/highacciploc/v1?qcip=‘+ip+‘&qterm=pc&ak=‘你的密钥(AK)‘&coord=bd09ll&extensions=3‘ poiss=‘‘ request = urllib2.Request(url) page = urllib2.urlopen(request, timeout=10) data_json = page.read() data_dic = json.loads(data_json) if(data_dic.has_key("content")): content=data_dic["content"] address_component=content["address_component"] formatted_address=content["formatted_address"] print "该IP地址的具体位置为:" print address_component["country"] print formatted_address if (content.has_key("pois")): print "该IP地址附近POI信息如下:" pois = content["pois"] for index in range(len(pois)): pois_name = pois[index]["name"] pois_address = pois[index]["address"] print pois_name, pois_address else: print ‘IP地址定位失败!!!‘ if __name__ == ‘__main__‘: get_ip_information(‘183.55.116.95‘)
大家把脚本上面的参数ak值改为自己的密钥即可。测试截图如下:
再放一张自己IP的测试截图:
确实精确到了路名,很准确,虽然没有pois的信息。
最后声明一下,成功率:综合定位成功率 65% ,精度:90% 误差 80m 以内;95% 误差 350m。这是官方给出的数据,所说有一定的概率是查询失败的!!!!
转自FreeBuf:http://www.freebuf.com/sectool/117164.html
以上是关于高精度IP地址定位接口的使用场景的主要内容,如果未能解决你的问题,请参考以下文章