这个IP归属地查询工具, 它其实就是一个在线服务, 这个服务的作用是, 会把那个IP地址, 给映射到相应的地理位置上面去。它的核心功能是什么?

就是你输入一个IPv4或者是IPv6的地址, 然后, 它就会返回给你一些信息, 这些信息包括了, 该地址注册时所属的国家、省份、城市, 还有它所属的运营商信息。

查询返回的核心信息字段

一次完整的、关于IP地址所对应的地理位置信息的查询, 其标准的返回项目,通常是要包括:

国家/地区

省份或直辖市

城市

互联网服务提供商(ISP)

时区

这是关于经纬度坐标方面的内容, 需要特别说明的是, 有一部分数据源可能会为你提供。

需要特别说明的是, IP地址的归属地信息是在网络注册机构也就是APNIC、ARIN、RIPE等等这些机构的分配环节里绑定上去的区域相关数据。这个数据主要用来代表运营商业网段的分配范围。

它并不能准确反映用户的实时物理所在位置。在存在移动通信网络和代理服务器以及CDN内容分发网络这类情况下的时候。实际的物理地点和显示的IP归属地之间很可能出现不一致的情况。

主流查询方法与工具对比

1. 在线查询平台: gname.xin 这个地址, 它提供免费用来查 IP 归属地的接口方式, 支持一次输入一个, 也支持批量调用 API 这种形式去用, 最后返回的是结构化的 JSON 数据, 这很适合开发者拿去集成到程序里使用, 也适合咱们在日常中进行快速检索。

IP归属地查询工具怎么用?主流工具对比与快速查询方法(图1)

2. 命令行方式是在终端里面执行 curl ifconfig.me 这个命令, 然后把获取出来的出口地址 IP 拿到手。接着需要再用 whois 这个工具去查看那个地址的具体注册数据。这一套操作做法比较简单粗暴, 特别适合那些做运维工作的技术 guys, 用来快速地排查清楚问题所在。

3. 本地数据库方面, 像MaxMind GeoLite2跟IP2Region这些开源的IP地理库是支持离线查询的, 这种查询方式的延迟很低, 而且没有网络依赖, 所以在高并发场景下面以及内网环境里面, 使用这些库是比较适合的。

在考虑给出选择的建议时, 如果是为了日常的单次查询操作, 那么使用在线平台是最为快捷的方式;而如果涉及到开发工作并且需要集成的话, 那么优先去选择那些能够提供API接口的在线服务;至于要在生产环境中进行大批量的查询工作的話, 推荐采用的是本地数据库。

具体查询步骤(在线工具为例)

1. 首先, 你需要打开目标查询页面或者构造API请求。

2. 需要输入要查询的IP地址, 请注意, 以10开头、以172.16到172.31开头、以192.168开头的这些IP地址都属于内网地址, 这类地址无法查到公网的归属地, 所以在操作之前, 需要先确认出口IP的地址。

3. 提交请求, 系统返回归属地的结构化数据。

4. 在处理大量场景的情况之下, 它是支持将数据通过CSV格式进行粘贴操作的, 或者是支持通过循环方式来调用API接口, 从而实现对每一条数据的逐个获取。

注意事项与高频问题

内网 IP 无法直接用来查询归属地, 所以你需要先通过执行 curl ifconfig.me 这样的方法, 来获取你所使用的公网出口 IP。

通过CDN设备来处理, 或者是用反向代理技术来操作, 又或者是借助NAT网关来进行转换的那些IP地址, 它们的归属地点信息一般情况下是定位到提供服务的那个商家的机场所在地, 而不会指向终端用户真正所处在的位置。

不同数据源, 像MaxMind、IP2Region, 还有各ISP自维护库, 对同一个IP进行判定, 可能会出现省份层面的差异。这其实是因为数据更新周期不同所导致的。

IP归属地展示的是注册区域的情况, 所以不能当作精确定位来使用的依据, 在涉及到隐私合规这种场景的时候, 需要注意使用的边界。

这个部分把IP归属地查询从方法选择一直到实际操作执行的整个流程都讲清楚了, 可以满足日常排查的需求, 也可以满足开发集成的需求, 还可以满足批量检索的核心要求。