接口文档

查询接口

方法路径说明
GET/v1/query?ip=223.5.5.5查询单个 IP(IPv4/IPv6 均可);省略 ip 参数时查询调用方 IP。
POST/v1/query批量查询,请求体 {"ips":["223.5.5.5","119.29.29.29","2400:3200::1"]}, IPv4/IPv6 可混排,单次最多 100 个(超出返回 413 too_many_ips),响应为 {"results":[...]}。

返回格式

响应均为 application/json。GET 返回单个对象;POST 批量返回{"results":[...]},结果顺序与请求一致,每项结构相同, 共 20+ 个字段(见下表)。

字段类型说明缺省形态
ipstring查询的 IP(IPv4/IPv6 均原样回显)必返回
foundboolean是否命中;false 表示未收录(内网/保留地址等),不计费必返回
countrystring国家或地区必返回
provincestring省份/州可能为空串
citystring城市(已归一化为规范名,如「深圳」→「深圳市」)可能为空串
ispstring运营商/网络归属可能为空串
country_codestringISO 3166-1 alpha-2 国家码,如 CN、US;港澳台统一返回 CN必返回
is_china_mainlandboolean是否中国大陆(港澳台为 false)。做合规/路由判断请直接用此字段必返回
regionstring地区归类:mainland / hk / mo / tw / overseas必返回
continent_codestring大洲码:AS 亚洲 / EU 欧洲 / NA 北美 / SA 南美 / OC 大洋洲 / AF 非洲 / AN 南极可能不返回
phone_prefixstring国际电话区号(含 +):大陆 +86、香港 +852、澳门 +853、台湾 +886可能不返回
china_province_codestring省级行政区划代码(GB/T 2260),如 浙江省=330000可能不返回
china_city_codestring市级行政区划代码(GB/T 2260/国家统计局口径):地级市为 xxxx00(抚州市=361000),县级市/市辖区/县为其自身 6 位码(瑞安市=330381、屯溪区=341002);港澳台与已撤并实体不返回可能不返回
province_pinyinstring省份拼音,如 jiangxi可能不返回
province_short_codestring省份简码(GB/T 2260 字母码),如 江西=JX、广东=GD可能不返回
province_abbrstring省级单字简称,如 江西=赣、上海=沪可能不返回
china_regionstring国内大区:华北/东北/华东/华中/华南/西南/西北(港澳台不返回)可能不返回
city_codestring城市拼音,如 抚州=fuzhou可能不返回
city_short_codestring城市简码(拼音首字母),如 抚州=FZ可能不返回
city_area_codestring城市电话区号,如 抚州=0794(港澳不返回,台湾为当地区号)可能不返回
timezonestringIANA 时区名,如 Asia/Shanghai可能不返回

港澳台说明:香港、澳门、台湾的 IP 统一返回 country=中国、country_code=CN,以 province 区分: 香港特别行政区、澳门特别行政区、台湾省(city 为空)。判断是否中国大陆请直接用 is_china_mainland 字段(或 region 字段:mainland/hk/mo/tw/overseas),无需自己维护省份名单; 国际电话区号也已按地区区分(大陆 +86 / 香港 +852 / 澳门 +853 / 台湾 +886)。

未命中示例:{"ip":"10.0.0.1","found":false}(不计费)。 每次成功(200)响应带 X-Quota-Remaining 头,为本次扣减后的剩余次数。

鉴权

所有请求需携带请求头 X-API-Key: ipk_your_key(key 在控制台创建)。也支持 ?key= 查询参数,但会进入访问日志,不建议使用。

计费规则

错误码

HTTP 状态error说明
401unauthorized缺少或无效的 API Key
402quota_exhausted次数已用完,请充值
403key_disabledAPI Key 已被禁用
404not_found路径不存在,仅开放 /v1/query 与 /v1/asn/as<asn>
405method_not_allowed仅支持 GET/POST 查询
429rate_limited请求过于频繁,请降低调用频率
502upstream_error服务暂时不可用,请稍后重试

调用示例

AI 集成

本站提供 AI 友好的机器可读文档。把下面这段提示词发给你的 AI 编程助手(Claude Code / Cursor / ChatGPT 等),即可正确接入:

我在用 IP 查询 API:基础地址 https://api.ip.denys.cn,鉴权请求头 X-API-Key(密钥我稍后提供)。
写代码前先抓取 https://api.ip.denys.cn/llms-full.txt 阅读完整接口说明,严格按其中的端点、响应字段、计费规则与错误码实现。

MCP 远程端点(推荐)

本站提供无状态 MCP 服务(Streamable HTTP,端点 https://api.ip.denys.cn/mcp, 工具:ip_query / ip_batch /ip_quota),调用按次计费、规则与直调完全一致, 返回字段与 REST 接口相同(20+ 个,含归属地、区号、行政区划码、ASN 等):

# Claude Code 等 CLI 工具(一行添加)
claude mcp add --transport http ip-geo https://api.ip.denys.cn/mcp --header "X-API-Key: ipk_your_key"

# Claude Desktop / Cursor 等(mcpServers JSON 配置)
{
  "mcpServers": {
    "ip-geo": {
      "url": "https://api.ip.denys.cn/mcp",
      "headers": { "X-API-Key": "ipk_your_key" }
    }
  }
}

机器可读入口:/llms.txt(站点索引)、/llms-full.txt(完整参考单文件版,推荐 AI 直接读取)。