查一个 IP 的归属地,不需要注册、不需要 Key、不需要读三百页文档。
浏览器能直连(CORS *),命令行一行就能跑。
/geo加载中…
/geo/json加载中…
/img1| 路径 | Content-Type | 说明 |
|---|---|---|
| /geo | text/plain | 4 行纯文本,默认查你自己的 IP |
| /geo/<ip 或域名> | text/plain | 指定目标,域名会自动解析 A 记录 |
| /geo/json[/<ip>] | application/json | 结构化字段,含经纬度、时区、风控分 |
| /geo/jsonp?callback=fn | application/javascript | 老式 JSONP,给只能插 <script> 的老场景 |
| /img1[/<ip>] | image/svg+xml | 签名档图片,默认显示访问者的 IP |
所有路径都还接受 ?ip= 参数,例如 /geo/json?ip=1.1.1.1,两种写法等价。
固定 4 行、顺序固定、查不到的字段用 - 占位,所以行号永远可以对上号:
第 1 行 IP 地址 第 2 行 国家 省 市(空格分隔) 第 3 行 ASN,如 AS15169 第 4 行 运营商 / 组织全名
| 字段 | 类型 | 说明 |
|---|---|---|
| ip | string | 实际查询的 IP(域名会先解析成 IP) |
| input | string | 仅当传入的是域名时出现,保留原始输入 |
| country / country_code | string | 国家与 ISO 代码,港澳台统一为「中国香港 / 中国澳门 / 中国台湾」 |
| region / city | string | 省、市 |
| location | string | 上面三者的拼接,省得自己拼 |
| lat / lon | number | 经纬度(城市级,不保证精确到街区) |
| timezone | string | IANA 时区名 |
| asn / asn_org | string | 如 AS13335 / Cloudflare, Inc. |
| isp / org | string | 运营商、注册组织 |
| ip_type | string | 机房 / IDC、CDN 边缘节点、住宅 / 固网、移动网络、VPN / 代理、Tor 出口节点 |
| risk_score | number|null | 0-100 风控分,null 表示该 IP 还没在站内算过(没跑黑名单,不瞎猜) |
| risk_level | string|null | 低风险 / 中低风险 / 中高风险 / 高风险 |
| maps | string|null | OpenStreetMap 链接 |
| cached | boolean | 是否命中边缘缓存 |
放进论坛签名、个人主页或 README:它显示的是访问者自己的 IP 归属地, 所以同一张图 1000 个人看到 1000 个结果——这也是它好玩的地方。纯 SVG,无外部依赖,体积不到 2KB。
| 参数 | 取值 | 说明 |
|---|---|---|
| ip | IP / 域名 | 省略则显示访问者自己的 IP |
| theme | light(默认)/ dark | 深色背景,适合暗色主题论坛 |
| mask | 1 | 打码,IPv4 → 1.2.*.*,IPv6 只留前 4 组 |
图片接口的限流放宽到 180 次/分钟——一个论坛页面可能同时挂着十几个签名档。
| 对象 | 配额 | 窗口 |
|---|---|---|
| 文本 / JSON | 60 次 | 每分钟(按 IP) |
| 签名档图片 | 180 次 | 每分钟(按 IP) |
每次响应都带这三个头,超限前自己就能看出来:
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 57 X-RateLimit-Reset: 1761495060 # 窗口重置的 Unix 时间戳
超过配额返回 429 + Retry-After。指定了 IP 的结果在边缘缓存 10 分钟、本地 1 分钟;
查询「你自己的 IP」的响应不缓存(否则会把别人的 IP 发给你)。
| 状态码 | 含义 |
|---|---|
| 200 | 成功 |
| 400 | 参数不合法(IP/域名格式错误、JSONP callback 含非法字符) |
| 404 | 查不到(内网地址、域名无 A 记录、上游暂无数据) |
| 405 | 用了 GET 以外的方法 |
| 429 | 超出配额,看 Retry-After |
| 504 | 域名解析超时 |
null,不会瞎给一个数字。用得上就随便用,不用署名。有问题或想加字段,欢迎反馈。