生活工具 · 证件号码

IP 地址查询

本机/任意 IP/域名→国家/省市/运营商(公开 IP 库)

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 72 次使用
本机 IP 自动检测 · 支持 IPv4 / IPv6 / 域名归属地查询
你的公网 IP
检测中…
示例:
输入上方查询框,或点「查我的 IP」查看本机归属地
诚实标注:归属地数据来自公开 IP 库 ipapi.co,境内通常仅精确到省份;本机 IP 通过公网 API 获取。 域名先经 DoH(国内 doh.pub / alidns → 国外 cloudflare / google)解析 A 记录再查。私网 / 保留地址本地判定,不外发查询。
第一节

关于本工具

About

排查网络故障时,最怕的是“IP 归属地”和“实际位置”对不上——比如某 CDN 节点 IP 显示北京,实际路由却在杭州。输入任意 IP 或域名,这个工具直接返回国家、省市和运营商名称,数据来自公开 IP 库,不存储查询记录。后端实时查库,适合运维排查路由、外贸站判断访客来源时快速比对。

使用场景

跨境物流查件纠纷

发往德国的 DHL 包裹显示已签收,买家坚称没收到。客服要求提供 IP 归属地作为辅助证据。把买家提供的签收时间点 IP 记录输入本工具,查到该 IP 实际归属城市与买家所在城市不同,且运营商为当地数据中心而非家庭宽带,帮助判断包裹可能被代收点签收。

网站后台异常登录排查

凌晨 3 点 WordPress 后台出现一条管理员登录记录,IP 为 103.235.46.x。用本工具查得该 IP 归属地为香港某云服务商,而管理员本人常住上海且当晚无海外访问记录。结合工具返回的运营商信息,确认是撞库攻击,立即封禁该 IP 段并修改密码。

海外用户反馈定位偏差

App 内基于 IP 的天气插件把一位新加坡用户定位到马来西亚新山。用户投诉后,用本工具查该用户 IP,返回运营商为 StarHub(新加坡本地运营商),但 IP 库的地理位置标注有误。将工具结果截图发给 IP 库维护方修正,同时临时在前端增加手动选择城市兜底。

电商平台反欺诈风控

一个订单的收货地址是北京朝阳区,但支付 IP 归属地显示为福建龙岩,且运营商为住宅宽带。用本工具交叉验证:支付 IP 与收货 IP 不同,且支付 IP 近 1 小时内在该工具上被查询过 3 次(均为不同收货地址)。判定为代付欺诈,触发人工审核。

CDN 节点调度验证

运维同事反馈华东用户访问延迟高,怀疑 CDN 节点未按地域调度。用本工具随机抽取 10 个华东用户 IP,逐一查询归属地,发现其中 3 个 IP 被 CDN 调度到了华南节点。工具返回的运营商字段显示这些 IP 均属于同一家二级运营商,其路由策略导致跨区域调度。

对比矩阵

维度本工具竞品 A(ipip.net)传统方法(命令行/手动查表)
查询方式输入 IP 或域名,一键查询输入 IP,需手动切换域名查询手动 ping 域名后查 IP,再对照公开库
数据覆盖国家 + 省市 + 运营商国家 + 省市 + 运营商(商业库更细)仅国家 / 部分省市,运营商需另查
速度实时返回(毫秒级)实时返回(毫秒级)依赖网络延迟和手动步骤,分钟级
隐私查询记录不存储部分需注册 / 记录查询历史本地操作无上传
离线可用需联网需联网完全离线(需本地数据库)
收费免费免费版有次数限制免费(需自行维护数据库)
第二节

使用指南

Getting Started

使用步骤

  1. 1在输入框键入 IP 地址或域名(如 8.8.8.8 或 google.com),自动跳过空格和非法字符
  2. 2点击「查询」按钮,结果区立即显示国家、省份、城市及运营商名称,无额外跳转
  3. 3展开「详细数据」可查看 ASN 编号、经纬度坐标及 IP 段范围,数据来自公开 IP 库
  4. 4点击结果行末尾的复制图标,将当前 IP 的完整地理位置信息复制到剪贴板

输入输出示例

输入输出说明
8.8.8.8美国 / 加利福尼亚州 / 山景城 / Google LLC常规:全球最常用的公共 DNS 服务器,验证海外 IP 解析的准确度与运营商识别
114.114.114.114中国 / 江苏省 / 南京市 / 中国电信常规:国内常用公共 DNS,验证国内 IP 的省市级别精度与运营商归属
127.0.0.1保留地址 / 本机回环地址 / 无运营商信息边界:回环地址(Loopback),验证工具对保留地址段的处理——不应报错,应明确提示地址性质
0.0.0.0保留地址 / 未指定地址 / 无运营商信息边界:未指定地址,验证工具对全零地址的识别,常见于 DHCP 或网络配置场景
10.0.0.1保留地址 / 私有网络(A 类) / 无运营商信息边界:私有地址(RFC 1918),验证工具能否正确标记私有 IP 而非强行查库
www.baidu.com解析结果:180.101.49.11 → 中国 / 北京市 / 北京百度网讯科技有限公司易错:用户输入域名而非 IP,验证工具是否支持 DNS 前置解析,并展示解析后的 IP 结果
192.168.1.1保留地址 / 私有网络(C 类) / 无运营商信息易错:常见家用路由器地址,用户常误以为能查到运营商,实际为私有 IP,需明确说明
256.256.256.256无效 IP 地址:各段数值超出 0-255 范围易错:非法 IP 格式,验证工具对输入校验的严格程度——应明确报错而非返回空/乱码

常见错误对照

1.把域名当IP地址查,得到错误归属

✗ 错误输入 baidu.com 查IP归属
✓ 修复先用 nslookup 或 ping 获取 baidu.com 的IP(如 110.242.68.66),再用该IP查归属

域名本身无地理位置属性,工具只解析IP地址。域名归属是域名注册商所在地,与服务器物理位置无关。

2.查私有IP(内网地址)以为有公网归属

✗ 错误输入 192.168.1.1 查归属
✓ 修复输入公网IP(如 8.8.8.8)查归属

RFC 1918 定义的私有IP(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)是局域网地址,不分配地理位置,工具返回空或默认值。

3.输入IPv6地址但工具只支持IPv4

✗ 错误输入 240e:390:1234::1 查归属
✓ 修复确认工具支持IPv6后再输入,否则用IPv4地址

部分公开IP库只收录IPv4数据,IPv6地址无对应记录。使用前需查看工具说明是否标注支持IPv6。

4.误以为运营商信息精确到二级运营商

✗ 错误输入 1.2.3.4 期望返回「长城宽带」
✓ 修复接受返回「中国电信」等一级运营商

公开IP库的ASN数据通常只到一级运营商(中国电信/联通/移动),不包含长城宽带、鹏博士等二级运营商。

5.用代理/VPN后的IP查真实位置

✗ 错误开启VPN后查本机IP,认为结果代表物理位置
✓ 修复关闭VPN/代理后再查本机IP,或直接查目标IP(非本机)

VPN出口IP归属地为服务器所在地,与用户实际位置不同。本机IP查询结果反映的是网络出口位置,非物理位置。

6.把IP库的「城市」当精确行政区划

✗ 错误认为IP归属城市精确到街道或区
✓ 修复只将城市信息作为参考,不用于精确导航或地址验证

公开IP库(如GeoIP)的城市精度通常为地级市级别,误差可达数公里,部分小城市可能被归入相邻大城市。

7.输入带端口或路径的IP地址

✗ 错误输入 8.8.8.8:53 或 8.8.8.8/path
✓ 修复输入 8.8.8.8

IP地址查询工具只接受纯IP地址(点分十进制),端口号和路径是网络协议层内容,不属于IP地址格式。

8.频繁查同一个IP认为结果会变化

✗ 错误每隔10秒刷新查同一个IP,期待运营商或城市变化
✓ 修复确认IP归属不变后停止重复查询

IP归属信息由IP段分配决定,除非IP重新分配或库更新,否则短期内结果不变。频繁查询浪费资源且无意义。

第三节

工作原理

How It Works

核心公式

IP 归属地 = lookup(IP, 公开 IP 库)

变量说明

  • IPIPv4 或 IPv6 地址
  • 公开 IP 库如 GeoLite2 等离线数据库

示例

输入 IP 8.8.8.8,查询公开 IP 库(如 GeoLite2-City)中对应记录,返回国家 US、州 California、城市 Mountain View、运营商 Google LLC。

输入 IP / 域名格式校验查询公开 IP 库返回结果DNS 解析(域名)查询公开 IP 库返回结果若为域名
用户输入 服务端处理 输出结果
第四节

开发者集成

For Developers

5 种主流语言实现,复制即用:

import requests # 使用 ip-api.com 免费公开 API(无 key,支持 HTTP) ip = '8.8.8.8' # 可替换为任意 IP 或域名 resp = requests.get(f'http://ip-api.com/json/{ip}', timeout=5) data = resp.json() if data['status'] == 'success': print(f"IP: {data['query']}") print(f"国家: {data['country']} ({data['countryCode']})") print(f"省市: {data['regionName']} {data['city']}") print(f"运营商: {data['isp']}") else: print('查询失败:', data.get('message', ''))
// Node.js 18+ 原生 fetch,无需安装依赖 const ip = '8.8.8.8'; const url = `http://ip-api.com/json/${ip}`; fetch(url) .then(res => res.json()) .then(data => { if (data.status === 'success') { console.log(`IP: ${data.query}`); console.log(`国家: ${data.country} (${data.countryCode})`); console.log(`省市: ${data.regionName} ${data.city}`); console.log(`运营商: ${data.isp}`); } else { console.log('查询失败:', data.message); } }) .catch(err => console.error('网络错误:', err));
package main import ( "encoding/json" "fmt" "io" "net/http" "time" ) type IPInfo struct { Query string `json:"query"` Country string `json:"country"` CountryCode string `json:"countryCode"` RegionName string `json:"regionName"` City string `json:"city"` ISP string `json:"isp"` Status string `json:"status"` Message string `json:"message,omitempty"` } func main() { ip := "8.8.8.8" url := fmt.Sprintf("http://ip-api.com/json/%s", ip) client := http.Client{Timeout: 5 * time.Second} resp, err := client.Get(url) if err != nil { fmt.Println("请求失败:", err) return } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) var info IPInfo json.Unmarshal(body, &info) if info.Status == "success" { fmt.Printf("IP: %s\n国家: %s (%s)\n省市: %s %s\n运营商: %s\n", info.Query, info.Country, info.CountryCode, info.RegionName, info.City, info.ISP) } else { fmt.Println("查询失败:", info.Message) } }
#!/bin/bash # 依赖 curl,通常预装 IP="8.8.8.8" RESP=$(curl -s --max-time 5 "http://ip-api.com/json/$IP") STATUS=$(echo "$RESP" | jq -r '.status' 2>/dev/null) if [ "$STATUS" = "success" ]; then echo "IP: $(echo "$RESP" | jq -r '.query')" echo "国家: $(echo "$RESP" | jq -r '.country') ($(echo "$RESP" | jq -r '.countryCode'))" echo "省市: $(echo "$RESP" | jq -r '.regionName') $(echo "$RESP" | jq -r '.city')" echo "运营商: $(echo "$RESP" | jq -r '.isp')" else echo "查询失败: $(echo "$RESP" | jq -r '.message' 2>/dev/null || echo '未知错误')" fi
<?php $ip = '8.8.8.8'; $url = "http://ip-api.com/json/{$ip}"; $resp = @file_get_contents($url, false, stream_context_create(['http' => ['timeout' => 5]])); if ($resp === false) { echo "网络请求失败\n"; exit; } $data = json_decode($resp, true); if ($data['status'] === 'success') { echo "IP: {$data['query']}\n"; echo "国家: {$data['country']} ({$data['countryCode']})\n"; echo "省市: {$data['regionName']} {$data['city']}\n"; echo "运营商: {$data['isp']}\n"; } else { echo "查询失败: " . ($data['message'] ?? '未知错误') . "\n"; }
第五节

常见问题

Q & A
我查自己电脑的 IP,和百度上显示的不一样,哪个准?

两个都可能准,但查到的对象不同。本工具查的是你当前网络出口 IP(即你访问本工具时服务器看到的 IP),百度或其它网站查的也是类似原理,但如果你开了 VPN、代理、或者运营商用的是 CGNAT(大内网),每次查询或不同网站的显示可能不一样。建议先关闭代理,刷新页面再查一次;如果还是不同,通常是运营商出口 IP 池轮换,两个都是真实的公网 IP。

输入域名查 IP,出来的是服务器地址还是 CDN 地址?

取决于域名解析情况。如果域名用了 CDN(如 Cloudflare、阿里云 CDN),查到的通常是 CDN 节点的 IP,而非源站真实 IP。本工具对域名做的是标准 A 记录解析,返回的就是当前 DNS 解析结果。如果想查源站 IP,需要绕过 CDN(如直接查域名历史解析记录或子域名枚举),本工具不提供该功能。

为什么查到的运营商不准,显示的是“电信”但我用的是“移动”?

IP 归属运营商数据来自公开 IP 库,更新频率通常为 1-3 个月,而运营商之间的 IP 段转让、新增、合并时有发生,导致库落后于实际。另外,部分二级运营商(如长城宽带、鹏博士)租用一级运营商线路时,IP 段仍归属原运营商。建议以宽带账单或运营商 App 显示的为准;如果需要最新数据,可以尝试换一个 IP 库(如 ipip.net 付费版)。

查到的城市离我实际位置差了几百公里,这是坏了吗?

不是坏了,是 IP 定位精度有限。IP 地理定位基于 IP 段注册地址和 BGP 路由信息,通常只能精确到城市级别(部分仅到省份),对于跨省运营商(如教育网、大型企业专线)或移动热点,定位偏差几百公里是正常现象。本工具用的是纯地理位置库(非基站/GPS),无法做到高精度。如果需要精确位置,请使用 GPS 或 Wi-Fi 定位。

这个工具能查到别人的准确家庭地址吗?

不能。IP 地址只能定位到运营商机房或城市级别,无法获取家庭住址、门牌号等个人隐私信息。本工具使用的公开 IP 库仅包含国家、省份、城市和运营商,不涉及任何用户隐私数据。任何声称能通过 IP 查家庭地址的网站或服务,要么是诈骗,要么是使用了非法数据。

我查了一个 IP,结果显示“保留地址”或“局域网”,什么意思?

“保留地址”指该 IP 属于私有地址段(如 10.x.x.x、192.168.x.x、172.16-31.x.x)或特殊用途段(如 127.x.x.x 回环地址),这些 IP 在公网上不可路由,只用于内部网络或本地测试。本工具检测到这类 IP 时会直接提示“保留地址/局域网”,不会继续查地理位置和运营商,因为这类信息无意义。如果确认该 IP 应该是公网 IP,可以检查是否输入有误。

每天查很多次会不会被封 IP 或者限速?

本工具不做主动限速或封禁,只要在合理使用范围内(比如每小时几百次查询),都可以正常使用。但请注意,如果使用脚本或程序高频连续请求(如每秒数十次),可能会被服务器防火墙自动临时限制,这是所有公开 Web 服务的通用保护机制。建议正常手工使用,无需担心。

查出来的 IP 归属地和快递单上的地址能对上吗?

基本对不上。快递地址是用户填写的精确门牌号,IP 归属地是运营商分配 IP 时注册的行政区划,二者没有直接关联。例如,一个北京用户用上海运营商的手机热点上网,IP 归属地会显示上海,但快递地址仍是北京。所以不要用 IP 归属地来判断快递地址是否正确,两者是不同维度的信息。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭