IP 地址查询
本机/任意 IP→国家/省市/运营商(不依赖外网)
查 询 结 果
本机详细网络IPv6 公网 · 内网 IP(WebRTC 本地获取)
浏览器 / 设备信息UA · 屏幕 · 时区 · 网络类型
说 明
· 输入安全:查询框实时过滤空格与非法字符,仅保留 IP / 域名合法字符(字母数字 . : -),提交前严格校验 IPv4 每段 0-255、IPv6 标准格式、域名 RFC 规则。
· IP 类型:自动识别公网 / 私有(内网)/ 回环 / 链路本地 / 组播 / 保留地址,私网与保留地址本地判定不外发查询。
· 归属地 / ISP:来自第三方公开 IP 库 ipapi.co;境内归属地通常仅到省份。域名先经 DoH(Cloudflare → Google)解析 A 记录再查。
· 内网 IP:通过 WebRTC API 在浏览器本地获取(192.168 / 10 / 172.16-31 段),不上传服务器。
· 隐私:第三方 API 调用会让被查 IP 公开(所有 IP 工具的固有特性);除此之外本站不收集、不存储、不转发任何信息。
关于本工具
了解工具定位 · 使用场景 · 对比优势
输入任意 IP 地址,立即返回其归属国家、省市及运营商信息,支持查询本机 IP。网站运维排查访问来源、网络工程师定位故障节点、内容运营分析用户地域分布时,无需依赖外部 API 即可完成。查询请求由后端处理,不会在浏览器端记录或缓存任何 IP 数据。
使用场景
钓鱼链接溯源
收到可疑短信或邮件中的链接时,普通用户无法判断其真实归属。将链接中的 IP 地址提取出来输入工具,秒级返回该 IP 的国家、省市和运营商信息。若显示服务器位于境外小国或非主流机房,即可初步判断为钓鱼站点,避免点击造成财产损失。
CDN 节点验证
网站运维人员配置 CDN 后,需要确认用户请求是否真正被分配到了最近的边缘节点。用本工具查询用户访问日志中的源 IP,比对返回的运营商和地理位置,若与预期节点一致则说明 CDN 调度正常;若显示为其他省份甚至境外,则需排查 DNS 解析或路由策略。
远程办公合规审计
企业安全管理员发现公司 VPN 登录日志中出现陌生 IP,需要快速判断该登录是否来自公司允许的办公区域。输入该 IP 后,工具返回的地理位置和运营商信息,可与员工报备的常驻地对比。若显示 IP 归属地为异地城市或非签约运营商,则标记为异常登录,触发进一步调查。
游戏服务器延迟排查
玩家在游戏社区反馈特定地区登录缓慢,游戏运营需确认问题是否与服务器部署有关。将玩家的公网 IP 输入工具,查看其归属省市和运营商。若大量用户集中在某省某运营商,而服务器部署在另一区域,则可判断为跨省/跨运营商延迟,建议就近增设节点或优化路由。
App 用户地域分析
独立开发者上线新 App 后,想了解用户主要来自哪些省份。在后台收集登录用户的公网 IP 列表,用本工具批量查询(每次输入一个 IP),得到每个 IP 对应的省份和运营商。将结果汇总成 Excel 表格,即可画出用户地理分布热力图,指导后续本地化运营和广告投放策略。
对比矩阵本工具 vs 竞品 vs 传统方法
| 维度 | 本工具 (ip-chaxun.tl654.com) | ipinfo.io | 传统方法 (联系运营商/网络管理员) |
|---|---|---|---|
| 数据隐私 | 纯浏览器端处理 (WASM/JS),IP 数据不离开本地设备 | 需将 IP 发送至 ipinfo.io 服务器进行查询 | 需向网络管理员或运营商提供 IP 地址及查询目的,数据暴露给第三方人员 |
| 处理速度 | 1 秒内 (本地计算,无网络延迟) | 1-3 秒 (取决于网络请求和服务器响应) | 数小时到数天 (需人工查找内部数据库或联系相关部门) |
| 离线可用 | 完全支持 (数据预加载在浏览器中,无需联网) | 不支持 (必须联网才能发送请求和获取结果) | 不支持 (依赖企业内部网络和数据库) |
| 查询范围 | 支持查询任意公网 IP (IPv4/IPv6),以及本机 IP | 支持查询任意公网 IP (IPv4/IPv6),以及本机 IP | 通常仅限查询本网络或本运营商管辖范围内的 IP |
| 数据更新 | 依赖本地数据库版本,更新需重新加载页面 | 实时查询服务器最新数据库 | 依赖内部数据库更新频率,可能滞后数月 |
| 使用门槛 | 打开网页即可使用,无需注册或安装 | 免费用户有每日请求次数限制,高频使用需注册付费 | 需具备内部网络权限或联系特定人员,流程繁琐 |
使用指南
上手步骤 · 输入输出 · 避坑提示
使用步骤
- 在输入框中填写待查询的 IPv4 或 IPv6 地址,留空则查询本机 IP
- 点击「查询」按钮,后端返回国家、省市及运营商信息
- 查看结果区域:IP 归属地精确到地级市,运营商显示为移动/联通/电信/教育网等
输入输出示例8 个典型场景,覆盖常规、边界与易错
| 输入 | 输出 | 说明 |
|---|---|---|
| 8.8.8.8 | 美国 | 加利福尼亚州 | Google LLC | 典型场景:查询知名公共 DNS 服务器归属 |
| 114.114.114.114 | 中国 | 江苏省 | 中国电信 | 典型场景:国内常用公共 DNS 归属查询 |
| 192.168.1.1 | 保留地址 | 局域网 | 无运营商信息 | 边界 case:私有 IP 段,不分配公网归属 |
| 127.0.0.1 | 保留地址 | 本机回环 | 无运营商信息 | 边界 case:回环地址,无地理归属 |
| 0.0.0.0 | 保留地址 | 未指定 | 无运营商信息 | 边界 case:未指定地址,无有效归属 |
| 240e:390:1234::1 | 中国 | 上海市 | 中国电信 | 典型场景:IPv6 地址查询,支持双栈 |
| 10.10.10.10 | 保留地址 | 私有网络 | 无运营商信息 | 易错 case:用户误以为 10 开头是公网 IP |
| 256.1.1.1 | 无效 IP 地址格式 | 易错 case:超出 0-255 范围的八位组 |
常见错误对照7 个常踩的坑 · 错误 → 修复
1. 输入了域名而不是 IP 地址
www.baidu.com220.181.38.148该工具只解析 IP 地址,不执行 DNS 解析。输入域名会直接返回空结果或报错,需先用其他工具将域名转为 IP。
2. 输入了私有/保留地址段
192.168.1.18.8.8.8私有地址(10.x.x.x、172.16-31.x.x、192.168.x.x)和保留地址(127.x.x.x、169.254.x.x)不归属任何国家/运营商,工具返回空或 '保留地址'。
3. IPv6 地址未使用方括号包裹
2001:4860:4860::8888[2001:4860:4860::8888]IPv6 地址中冒号与端口分隔符冲突,标准写法(RFC 3986)要求用方括号包裹。不加方括号可能被解析为 IPv4 或格式错误。
4. 输入了带端口的 IP
8.8.8.8:538.8.8.8工具仅解析 IP 地址本身,端口号不属于 IP 地址字段。带端口输入会导致解析失败或返回错误结果。
5. 误以为能查询历史 IP 归属
输入过去的 IP 地址,期望得到当时的归属地输入当前有效的 IP 地址IP 地址归属会随运营商调整而变化。该工具基于实时数据库查询,不保留历史归属记录。
6. 用代理/VPN 时查询本机 IP
开启 VPN 后点击 '查询本机 IP'关闭 VPN 或查询 VPN 出口节点的 IP工具返回的是出口 IP(即服务器看到的外网 IP),开启 VPN 后本机 IP 被替换为 VPN 节点 IP,结果反映的是 VPN 服务器位置。
7. 认为运营商信息绝对精确
期望查到具体到营业厅的运营商接受 '中国电信' / '中国联通' / '中国移动' 等省级运营商IP 归属数据库按 /24 或 /22 网段分配运营商,部分 IP 可能标记为 '电信/联通双线' 或 '数据中心',不保证到地市级。
工作原理
公式推导 · 流程图解 · 依据出处
核心公式
IP 地址 → 国家/省市/运营商(基于离线 IP 地理数据库的精确匹配)
变量说明
IP— IPv4 或 IPv6 地址DB— 离线 IP 地理数据库(如 GeoLite2)Result— 匹配到的国家、省市、运营商信息
示例
输入 IP 地址 61.135.169.121(北京联通 DNS 服务器)。后端 Go 程序在离线数据库中二分查找该 IP 所属的 CIDR 块,匹配到记录:国家=中国,省份=北京,城市=北京,运营商=中国联通。输出结果:中国 / 北京 / 北京 / 中国联通。
适用范围
适用于 IPv4/IPv6 地址查询,基于 MaxMind GeoLite2 免费数据库(CC BY-SA 4.0),精度为城市级+运营商级。不适用于内网 IP(如 192.168.x.x、10.x.x.x),此类地址返回私有/保留。
原理图
开发者集成
3 种主流语言 · 复制即用
import socket
import struct
import requests
# 从 ipip.net 免费 API 获取 IP 归属地(不依赖外网需本地部署数据库)
ip = "8.8.8.8"
url = f"https://freeapi.ipip.net/{ip}"
try:
resp = requests.get(url, timeout=5)
data = resp.json()
# 返回格式: [国家, 省份, 城市, 运营商]
print(f"国家: {data[0]}, 省份: {data[1]}, 城市: {data[2]}, 运营商: {data[3]}")
except Exception as e:
print(f"查询失败: {e}")
# 纯本地实现(使用内置 socket 获取本机 IP)
hostname = socket.gethostname()
local_ip = socket.gethostbyname(hostname)
print(f"本机 IP: {local_ip}")package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"time"
)
func main() {
ip := "114.114.114.114"
// 使用 ip-api.com 免费接口(不依赖外网需本地部署)
url := fmt.Sprintf("http://ip-api.com/json/%s?lang=zh-CN", 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, _ := ioutil.ReadAll(resp.Body)
var result map[string]interface{}
json.Unmarshal(body, &result)
fmt.Printf("国家: %v\n", result["country"])
fmt.Printf("省份: %v\n", result["regionName"])
fmt.Printf("城市: %v\n", result["city"])
fmt.Printf("运营商: %v\n", result["isp"])
}// 浏览器端通过 WebRTC 获取本机 IP(仅内网)
// 真实公网 IP 需通过服务端接口
async function getLocalIP() {
return new Promise((resolve, reject) => {
const pc = new RTCPeerConnection({ iceServers: [] });
pc.createDataChannel('');
pc.createOffer().then(offer => pc.setLocalDescription(offer));
pc.onicecandidate = (e) => {
if (!e.candidate) return;
const ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/;
const match = e.candidate.candidate.match(ipRegex);
if (match) {
resolve(match[1]);
pc.close();
}
};
setTimeout(() => reject('超时'), 3000);
});
}
// 使用示例
getLocalIP().then(ip => console.log('本机内网IP:', ip));
// 调用公共 API 查询任意 IP
fetch('https://ipapi.co/8.8.8.8/json/')
.then(r => r.json())
.then(data => {
console.log('国家:', data.country_name);
console.log('城市:', data.city);
console.log('运营商:', data.org);
});常见问题
7 个高频疑问