一、技术简介
IPv6 高精度定位查询接口面向 IPv6 地址的归属地解析需求。接口基于多源数据融合构建,结合动态更新的 IP 地址库与解析算法,可提取 IPv6 地址对应的核心归属信息:国内地址大部分可定位至市级行政单位(含部分重点区县),国外地址可解析至国家 / 地区级别。该能力适配网络安全、业务风控、用户运营等需要按地理维度刻画访问来源的场景。

二、能力概览
| 项目 | 说明 |
|---|---|
| 接口路径 | /ipv6/getip |
| 调用地址 | https://ipv61.market.alicloudapi.com/ipv6/getip |
| 请求方式 | GET |
| 返回格式 | JSON |
| 鉴权方式 | Authorization: APPCODE <appcode>(简单认证)/ AppKey & AppSecret 签名认证 |
| 字符编码 | UTF-8 |
调用地址为阿里云云市场网关域名,部署在阿里云基础设施之上。
三、适用场景
- 安全风控:识别异常登录、批量请求的地理位置,辅助判断是否来自非常用地域。
- 业务运营:统计用户地域分布,支撑区域化运营策略与活动投放。
- 网络调度:结合归属地信息做就近接入、CDN 节点选择等调度决策。
- 日志分析:为访问日志补充地理位置维度,便于审计与异常排查。
- 合规审计:在授权范围内核验访问来源地域,满足内控与监管要求。

四、接入流程
- 在阿里云云市场开通并订购该接口,获取 AppCode(或 AppKey / AppSecret)。
- 构造 GET 请求,将待查询的 IPv6 地址作为
ipv6查询参数。 - 在请求头中携带鉴权信息:
Authorization: APPCODE <appcode>。 - 发送 HTTPS 请求至调用地址。
- 解析返回的 JSON,读取
showapi_res_body中的归属地字段。

五、调用示例与返回结构
5.1 请求参数
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| ipv6 | string | 否(N) | 待查询的 IPv6 地址;缺少有效值将无法返回定位结果 | 2408:874d:a00:1::1:b |
5.2 返回字段
外层信封字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| showapi_res_code | int | 网关返回码,0 表示成功 |
| showapi_res_error | string | 错误信息,成功时为空 |
| showapi_fee_num | int | 本次调用扣费次数 |
| showapi_res_id | string | 本次请求唯一标识 |
| showapi_res_body | object | 业务返回数据 |
showapi_res_body 业务字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| ret_code | int | 业务返回码,0 表示成功 |
| country | string | 国家 / 地区 |
| city | string | 城市 |
| city_code | string | 城市编码 |
| county | string | 区县,部分地址可能为空 |
| lnt | string | 经度 |
| lat | string | 纬度 |
| remark | string | 备注,通常为空 |

5.3 成功返回样例
{
"showapi_res_error": "",
"showapi_fee_num": 1,
"showapi_res_code": 0,
"showapi_res_id": "66160b2ffb638c08b87eca95",
"showapi_res_body": {
"ret_code": 0,
"county": "",
"remark": "",
"city_code": "361000",
"lnt": "116.35809",
"lat": "27.94781",
"country": "中国",
"city": "抚州市"
}
}
5.4 多语言调用示例
curl:
curl -i -k --get --include \
'https://ipv61.market.alicloudapi.com/ipv6/getip?ipv6=2408%3A874d%3Aa00%3A1%3A%3A1%3Ab' \
-H 'Authorization:APPCODE 你的AppCode'
Python:
import requests
host = "https://ipv61.market.alicloudapi.com"
path = "/ipv6/getip"
appcode = "你的AppCode"
resp = requests.get(
f"{host}{path}",
params={
"ipv6": "2408:874d:a00:1::1:b"},
headers={
"Authorization": f"APPCODE {appcode}"},
timeout=10,
)
data = resp.json()
body = data.get("showapi_res_body", {
})
print(body.get("country"), body.get("city"), body.get("city_code"))
Java:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Ipv6Lookup {
public static void main(String[] args) throws Exception {
String appcode = "你的AppCode";
String url = "https://ipv61.market.alicloudapi.com/ipv6/getip?ipv6=2408%3A874d%3Aa00%3A1%3A%3A1%3Ab";
HttpRequest req = HttpRequest.newBuilder(URI.create(url))
.header("Authorization", "APPCODE " + appcode)
.GET()
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());
}
}
Node.js:
const https = require("https");
const appcode = "你的AppCode";
const url = "https://ipv61.market.alicloudapi.com/ipv6/getip?ipv6=2408%3A874d%3Aa00%3A1%3A%3A1%3Ab";
https.get(url, {
headers: {
Authorization: `APPCODE ${
appcode}` } }, (res) => {
let raw = "";
res.on("data", (c) => (raw += c));
res.on("end", () => console.log(raw));
}).on("error", (e) => console.error(e));
PHP:
<?php
$appcode = "你的AppCode";
$host = "ipv61.market.alicloudapi.com";
$path = "/ipv6/getip?ipv6=" . urlencode("2408:874d:a00:1::1:b");
$ch = curl_init("https://$host$path");
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["Authorization: APPCODE $appcode"],
CURLOPT_RETURNTRANSFER => true,
]);
$body = curl_exec($ch);
curl_close($ch);
echo $body;
六、在线调试实录
在接口调试面板中对示例地址 2408:874d:a00:1::1:b 发起请求,实测返回如下(已脱敏请求标识):
{
"showapi_res_code": 0,
"showapi_res_body": {
"ret_code": 0,
"country": "中国",
"city": "抚州市",
"city_code": "361000",
"lnt": "116.35809",
"lat": "27.94781"
}
}

实测要点:
- 请求成功时
showapi_res_code与ret_code均为 0。 - 国内地址可返回城市与城市编码,经纬度为地址库对应中心点坐标。
county与remark在市级定位场景下通常为空,属正常表现。
七、调用限制与规范
- 频控与配额:具体 QPS 上限与每日调用配额以控制台实时配置为准,接入前请在控制台确认当前资源包的余量与限制。
- 扣费规则:仅在 HTTP 响应状态码为 200 时扣减调用次数,非 200 不扣费。
- 数据合规:IPv6 地址在使用场景下可能关联到具体用户,处理时遵循最小必要原则——仅用于约定的业务目的,传输过程加密,日志中避免明文留存,必要时向用户告知并取得授权。
- 密钥安全:AppCode / AppKey 视为凭证,仅通过环境变量传入,禁止写入前端代码或提交到代码仓库。
- 结果使用:返回归属地为地址库推断值,仅作参考,不应作为唯一依据用于强身份认证或法律判定。

八、能力边界与免责
- 协议范围:仅支持 IPv6 地址查询,不支持 IPv4。
- 精度范围:国内大部分可定位至市级(含部分重点区县),国外可解析至国家 / 地区级别;区县(county)字段在多数情况下为空。
- 坐标性质:返回的经纬度为地址库对应的中心点近似坐标,非设备实时 GPS 位置。
- 数据时效:地址库动态更新,归属结果随库版本变化,请以实时返回为准。
- 免责声明:接口数据仅供参考,不对基于该数据作出的业务决策承担责任。
九、错误排查
接口通过 HTTP 状态码与 showapi_res_code / showapi_res_error 反馈状态:
- 鉴权失败:检查
Authorization头格式是否为APPCODE <appcode>,确认 AppCode 有效且未过期。 - 参数问题:
ipv6为空或格式非法时无法返回定位结果,需校验地址是否符合 IPv6 规范。 - 频率超限:短时间内高频请求可能触发限流,建议加入退避重试与本地缓存。
- 网关异常:非 200 的 HTTP 响应不扣费,可依据
showapi_res_error排查或稍后重试。
调试面板「错误码」区域在当前版本未提供独立错误码枚举,实际以响应中的
showapi_res_code与showapi_res_error字段为准。
十、技术 FAQ
Q1:ipv6 参数是否必填?
页面参数标注为「否(N)」,但缺少有效 IPv6 值将无法返回定位结果,调用时务必携带待查询地址。
Q2:返回的经纬度精度如何?
经纬度为地址库对应中心点近似坐标,用于城市级地理刻画,不代表精确设备位置。
Q3:是否支持 IPv4?
不支持,该接口仅面向 IPv6 地址场景。
Q4:国内与国外精度有何差异?
国内大部分可定位至市级(含部分重点区县),国外可解析至国家 / 地区级别。
Q5:两种鉴权方式如何选?
简单调用场景使用 APPCODE 即可;对安全性要求更高的场景可使用 AppKey & AppSecret 签名认证。
Q6:调用频率有限制吗?
具体 QPS 与每日配额以控制台配置为准,接入前请确认资源包余量。
Q7:为什么 county 字段为空?
市级定位场景下区县信息通常缺失,属正常表现,可依赖 city / city_code 使用。
Q8:数据传输是否安全?
请求经 HTTPS 传输,调用地址为阿里云网关域名;AppCode 等凭证应妥善保管,仅服务端使用。
十一、内容小结
本文以 IPv6 高精度定位查询接口为样例,梳理了从开通鉴权、构造请求、解析返回到错误排查的完整接入路径,并给出了 curl / Python / Java / Node.js / PHP 多语言示例。接入时需关注三点:一是遵循最小必要与凭证安全原则处理可能关联用户的地址信息;二是以控制台实时配置为准确认频控与配额;三是理解返回结果为地址库推断值,仅作参考。将文中的重试、缓存、密钥管理思路迁移到同类网关接口,可规范、稳妥的完成接入与后续运维。