免费 IP 查询 API

给它一个 IP 地址,返回该地址的国家、城市、网络运营商,以及它是否属于数据中心或 VPN。无需密钥,无需注册,完全免费。

试一试

这是你自己的 IP,在你打开本页时从 API 实时获取:

加载中……

接口

GET https://www.unblockmaster.com/api/v1/ip

查询调用方自己的 IP 地址。

curl https://www.unblockmaster.com/api/v1/ip

GET https://www.unblockmaster.com/api/v1/ip/<ip>

查询任意 IPv4 或 IPv6 地址。

curl https://www.unblockmaster.com/api/v1/ip/8.8.8.8

响应

{
  "ip": "8.8.8.8",
  "is_vpn": true,
  "provider": "Google LLC",
  "country": "United States",
  "country_code": "US",
  "city": "Mountain View",
  "lat": 37.4056,
  "lon": -122.0775
}
字段类型含义
ipstring被查询的地址。
is_vpnbool | null当地址属于已知数据中心或 VPN 段时为 true。null 表示查询未能完成——而不是 false。
providerstring已知时给出网络运营商。
countrystring英文国家名称。
country_codestring两位 ISO 3166-1 代码。
citystring已知时给出城市名称。
lat, lonfloat | null城市的大致坐标,而非设备坐标。

所有字段始终存在。我们没有的值会是空字符串或 null,而不会是缺失的键——因此你读取响应时无需逐个字段做判断。

在 JavaScript 中

const res = await fetch("https://www.unblockmaster.com/api/v1/ip");
const data = await res.json();

if (data.is_vpn === true) {
  console.log("Visitor is behind a VPN or proxy");
} else if (data.is_vpn === false) {
  console.log("Visitor is on a residential connection");
} else {
  console.log("Could not determine");  // upstream was unavailable
}

在 Python 中

import requests

r = requests.get("https://www.unblockmaster.com/api/v1/ip/1.1.1.1", timeout=5)
print(r.json()["country"])  # Australia

速率限制与错误

限制为每个客户端每分钟 60 次请求。每个成功响应都会带上 X-RateLimit-LimitX-RateLimit-Remaining,因此你可以在触及上限之前就减速,而不是之后。

地位error触发条件
400invalid_ip路径片段不是有效的 IPv4 或 IPv6 地址。
405method_not_allowed除 GET、HEAD、OPTIONS 之外的任何方法。
429rate_limited超出限制。请遵守 Retry-After 响应头。

合理使用

查看我们 VPN 检测器背后的 API 或者直接嵌入这个工具