前一段时间,微博、头条、抖音、知乎等各大互联网平台相继推出了“个人主页、评论显示 IP 属地,用户不能自己开启或关闭”的功能,那么这些平台是如何获取到用户的 IP 地址呢?
本文将从 IP 归属地的技术原理、实际应用场景、如何获取用户到 IP 地址等多方面为你讲透 IP 归属地查询。
IP 归属地是利用大数据挖掘和大规模网络探测技术,对 IP 地址的基础信息和网络拓扑数据进行采集、处理, 结合IP 地址所在的应用场景与网络属性等因素,利用动态密度聚类算法和基于多层神经网络的 IP 地址定位算法,完成 IP地址地理位置定位。
基于此,IP 归属地查询就有了非常多可以应用的场景,包括但不限于下面的场景:
要获取用户的 IP 地址归属地,我们需要使用 IP 地址定位服务将 IP 地址映射到特定的地理位置来确定用户的大致位置。
我们有许多免费和付费的 IP 地址定位服务可供选择。其中一些服务包括:
登录供应商平台并注册获取 API 密钥。一般来说,我们注册后都将获得一个 API 密钥或令牌,这是用于获取 IP 归属地的凭据。
以 APISpace 为例,首先我们点击 【 免费试用 】 后,完成登录注册
注册成功后,我们在页面导航菜单点击 【我的 API】进入 【访问控制】页面,即可看到平台提供的密钥。
一般来说注册成功后,都有一定的免费试用,试用过了我们可以在平台上购买更多的次数。
获取API 密钥后,我们可以参考 API 供应商提供的文档或示例代码,在代码中集成通知 IP 归属地查询功能。
在APISpace 网站上,我们可以在 IP 归属地 详情页上,获取它的示例代码。
以 Python 为例的示例代码如下:
import http.client
conn = http.client.HTTPSConnection("eolink.o.apispace.com")
payload = ""
headers = {
"X-APISpace-Token":"",
"Authorization-Type":"apikey"
}
conn.request("GET","/ipguishu/ip/geo/v1/district?ip=1.45.124.145&coordsys=WGS84", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
我们在 IP 归属地的测试页面上,输入测试的 IP 地址,就可以看到返回的相关 IP 信息。
返回示例如下:
{
"code": "Success",
"data": {
"continent": "亚洲",
"country": "中国",
"zipcode": "100005",
"timezone": "UTC+8",
"accuracy": "区县",
"owner": "北京维瑞智盛软件开发有限公司",
"isp": "北京海讯达通信有限公司",
"source": "数据挖掘",
"areacode": "CN",
"adcode": "110101",
"asnumber": "45083",
"lat": "39.930941",
"lng": "116.409243",
"radius": "6.9215",
"prov": "北京市",
"city": "北京市",
"district": "东城区"
},
"charge": true,
"msg": "查询成功",
"ip": "1.45.124.145",
"coordsys": "WGS84"
}
通过 IP 归属地查询,我们可以精确获取到用户地址,无论对精确用户进行广告投放、或者对 IP 进行网络监控都至关重要。 APISpace 是国内一个相对较大的 API 供应平台,提供除 IP 类的接口,还有 OCR 识别类、天气预报查询类、短信类等接口,有兴趣的小伙伴可以去探索一下~