引言:为什么需要 IP 归属地查询?

在互联网应用开发中,「知道用户从哪里来」往往是很多功能的基础:

  • 你想统计用户地域分布,为运营决策提供数据支撑;
  • 你想在用户异地登录时给出风险提示,保障账号安全;
  • 你想根据访客所在地区展示对应的语言、货币或本地化内容;
  • 你想限制某些地区的访问,或者为不同地区分配不同的 CDN 节点……

这一切,都离不开 IP 归属地查询。

传统做法是接入第三方付费 IP 库或在线 API,但普遍存在两个痛点:贵(按次计费)和慢(外网请求有延迟、有被限流的风险)。

为此,大米API 新增了 IPv4 归属地查询接口(dm-ipquery),它使用本地离线数据库,毫秒级响应,免费开放给平台用户,帮助开发者用最少的成本完成地域相关的业务逻辑。

请求示例

https://www.qqsuu.cn/api/dm-ipquery?ip=123.55.6.12&key=你的API密钥

⚠️ 注意:平台所有接口请求必须携带密钥 key(在平台「获取 APIKEY」页面申请),否则请求将会失败。ip 参数可以不传,不传时接口会自动查询当前访客(本机)的 IP。

注册地址:点我注册

代码调用示例

curl(命令行)

# 指定 IP 查询 curl -X GET "https://www.qqsuu.cn/api/dm-ipquery?ip=123.55.6.12&key=你的API密钥" # 查询本机 IP curl -X GET "https://www.qqsuu.cn/api/dm-ipquery?key=你的API密钥" 

Python(requests)

import requests

API_URL = "https://www.qqsuu.cn/api/dm-ipquery" KEY = "你的API密钥" # 替换为你的密钥 def query_ip(ip: str = "") -> dict: """查询 IP 归属地;ip 传空串则查询本机""" params = {"key": KEY} if ip:
        params["ip"] = ip
    resp = requests.get(API_URL, params=params, timeout=10)
    resp.raise_for_status() return resp.json() if __name__ == "__main__": # 指定 IP result = query_ip("123.55.6.12") print(result) if result.get("code") == 0:
        data = result["data"] print(f"{data['ip']} -> {data['country']} {data['province']} {data['city']} {data['district']} {data['isp']}") # 本机 IP me = query_ip() if me.get("code") == 0:
        d = me["data"] print("我的 IP 归属地:", d["country"], d["province"], d["city"], d["district"], d["isp"])

PHP(file_get_contents)

<?php $key = '你的API密钥'; $ip = '123.55.6.12'; $url = "https://www.qqsuu.cn/api/dm-ipquery?ip=" . urlencode($ip) . "&key=" . $key; $json = file_get_contents($url); $data = json_decode($json, true); if ($data['code'] === 0) { $d = $data['data']; echo $d['ip'] . ' 归属:' . $d['country'] . $d['province'] . $d['city'] . ' ' . $d['isp'] . PHP_EOL;
} else { echo '查询失败:' . $data['msg'] . PHP_EOL;
}

常见问题排查:

  1. 请求返回失败 / 提示缺少密钥 → 检查是否携带了 key 参数,密钥是否正确(在平台「获取 APIKEY」页面查看)。
  1. 返回 404 → 先确认 IP 格式正确(如 123.55.6.12),再换一个常见 IP(如 114.114.114.114)对比测试,排除个例。
  1. 返回的字段是空字符串 → 该 IP 在数据源中缺少对应字段(如部分海外 IP 没有邮编),业务上做好空值处理即可。
  1. 中文乱码 → 接口返回为 UTF-8 编码 JSON,请确认你的开发环境/终端使用 UTF-8。

应用场景

  • 用户地域统计:访问日志中记录访客 IP,批量查询归属地,生成用户分布报表,指导运营与投放。
  • 登录风控:检测到账号在短时间内于不同省份/城市登录时,触发二次验证或风险提示,提升账号安全性。
  • 内容本地化:根据访客所在地区自动切换语言、币种、时区显示,提升用户体验。
  • 访问限制与合规:按地区对特定内容/服务做开放或限制(如部分地区功能灰度)。
  • 广告投放分析:结合地域信息做精准广告定向与效果分析。
  • CDN / 节点调度:作为简单的地域判断依据,辅助选择就近节点。


欢迎留言