根据输入的IP地址,查询其精确归属地(支持区县及街道级),返回国家、省份、城市、区县、街道、经纬度、ISP运营商、时区、邮编等详细地理信息。同时提供IP风险画像,包括是否使用代理、风险评分、风险等级及真人概率,适用于风控反欺诈、精准营销及本地化服务。支持多街道定位结果返回。
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| key | string | 是 | 接口调用密钥 | 后台KEY |
| ip | string | 是 | IP地址 | 106.224.48.17 |
[
{
"name": "key",
"type": "string",
"required": true,
"description": "接口调用密钥",
"example": "后台KEY"
},
{
"name": "ip",
"type": "string",
"required": true,
"description": "IP地址",
"example": "106.224.48.17"
}
]
{
"openapi": "3.1.1",
"info": {
"title": "归属地街道查询",
"description": "根据输入的IP地址,查询其精确归属地(支持区县及街道级),返回国家、省份、城市、区县、街道、经纬度、ISP运营商、时区、邮编等详细地理信息。同时提供IP风险画像,包括是否使用代理、风险评分、风险等级及真人概率,适用于风控反欺诈、精准营销及本地化服务。支持多街道定位结果返回。",
"version": "1.0.0"
},
"paths": {
"/apis/ipinfo": {
"get": {
"summary": "归属地街道查询",
"description": "根据输入的IP地址,查询其精确归属地(支持区县及街道级),返回国家、省份、城市、区县、街道、经纬度、ISP运营商、时区、邮编等详细地理信息。同时提供IP风险画像,包括是否使用代理、风险评分、风险等级及真人概率,适用于风控反欺诈、精准营销及本地化服务。支持多街道定位结果返回。",
"parameters": [
{
"name": "key",
"in": "query",
"required": true,
"schema": {
"type": "string",
"example": "后台KEY"
},
"description": "接口调用密钥"
},
{
"name": "ip",
"in": "query",
"required": true,
"schema": {
"type": "string",
"example": "106.224.48.17"
},
"description": "IP地址"
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
}
},
"servers": [
{
"url": "https://api.tmini.net",
"description": "当前访问入口(https)"
}
]
}
"status": 1,
"data": {
"area_code": "360102",
"city": "南昌",
"city_code": "0791",
"continent": "亚洲",
"country": "中国",
"country_code": "CN",
"district": "东湖",
"elevation": "23",
"ip": "106.224.48.17",
"isp": "电信",
"latitude": "28.68698",
"longitude": "115.908295",
"multi_street": [
"江西南昌东湖董家窑街道",
"江西赣州章贡站前大道",
"江西南昌东新街道",
"江西南昌富山西大道"
],
"province": "江西",
"street": "董家窑街道",
"time_zone": "Asia/Shanghai",
"weather_station": "CHXX0097",
"zip_code": "330000",
"risk": {
"is_proxy": "否",
"mb_rate": "0.00%",
"proxy_probability": "0%",
"proxy_type": "",
"real": "74%",
"risk_level": "无风险",
"risk_score": 0,
"risk_tag": "",
"risk_time": "-"
},
"ip_int": 1793077265,
"location": "中国江西南昌东湖电信"
},
"req_id": "b402df5e1d0721714393"
}
根据输入的 IP 地址查询其精确归属地,可细化到区县与街道,并返回国家、省份、城市、经纬度、运营商、时区、邮编等地理信息。同时提供 IP 风险画像,包含风险评分、风险等级与真人概率,可用于风控反欺诈、精准营销及本地化服务。支持返回多街道定位结果。
http://api.tmini.net/apis/ipinfo
GET
调用时必须携带密钥,通过 Query 参数传递:
key:接口调用密钥,必填。密钥需拼接在请求地址的查询字符串中,例如:http://api.tmini.org/apis/ipinfo?key=后台KEY&ip=106.224.48.17。未携带或密钥无效时,请求将被拒绝。
请求方式为 GET,密钥通过 Query 参数 key 传递,示例形式为 ?key=你的密钥&ip=106.224.48.17。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 接口调用密钥,在后台获取后原样传入。 |
| ip | string | 是 | 待查询的 IP 地址,支持 IPv4 点分十进制格式,如 106.224.48.17。 |
参数取值说明:
key:为必填项,缺失或无效时无法完成查询。ip:为必填项,请填写合法的 IPv4 地址,不支持填写域名或其他非 IP 文本;一次请求仅查询一个 IP。{
"status": 1,
"data": {
"area_code": "360102",
"city": "南昌",
"city_code": "0791",
"continent": "亚洲",
"country": "中国",
"country_code": "CN",
"district": "东湖",
"elevation": "23",
"ip": "106.224.48.17",
"isp": "电信",
"latitude": "28.68698",
"longitude": "115.908295",
"multi_street": [
"江西南昌东湖董家窑街道",
"江西赣州章贡站前大道",
"江西南昌东新街道",
"江西南昌富山西大道"
],
"province": "江西",
"street": "董家窑街道",
"time_zone": "Asia/Shanghai",
"weather_station": "CHXX0097",
"zip_code": "330000",
"risk": {
"is_proxy": "否",
"mb_rate": "0.00%",
"proxy_probability": "0%",
"proxy_type": "",
"real": "74%",
"risk_level": "无风险",
"risk_score": 0,
"risk_tag": "",
"risk_time": "-"
},
"ip_int": 1793077265,
"location": "中国江西南昌东湖电信"
},
"req_id": "b402df5e1d0721714393"
}
| 字段 | 类型 | 说明 |
|---|---|---|
| status | integer | 响应状态,1 表示查询成功 |
| data | object | 归属地与风险画像结果 |
| data.ip | string | 被查询的 IP 地址 |
| data.ip_int | integer | 该 IP 的整数形式表示 |
| data.continent | string | 所属大洲 |
| data.country | string | 国家名称 |
| data.country_code | string | 国家二字代码 |
| data.province | string | 省份 |
| data.city | string | 城市 |
| data.city_code | string | 城市电话区号 |
| data.district | string | 区县 |
| data.street | string | 街道(主定位结果) |
| data.multi_street | array | 多街道定位结果列表,每项为省市区街道完整描述 |
| data.area_code | string | 行政区划代码 |
| data.zip_code | string | 邮政编码 |
| data.latitude | string | 纬度 |
| data.longitude | string | 经度 |
| data.elevation | string | 海拔(米) |
| data.isp | string | ISP 运营商 |
| data.time_zone | string | 时区标识 |
| data.weather_station | string | 气象站点编码 |
| data.location | string | 归属地简述文本(国家+省+市+区县+运营商) |
| data.risk | object | IP 风险画像 |
| data.risk.is_proxy | string | 是否标记为异常网络出口,取值为 是 / 否 |
| data.risk.proxy_probability | string | 异常出口概率 |
| data.risk.proxy_type | string | 异常出口类型,无则为空字符串 |
| data.risk.mb_rate | string | 移动设备占比 |
| data.risk.real | string | 真人概率 |
| data.risk.risk_score | integer | 风险评分 |
| data.risk.risk_level | string | 风险等级 |
| data.risk.risk_tag | string | 风险标签,无则为空字符串 |
| data.risk.risk_time | string | 风险判定时间,无数据时为 - |
| req_id | string | 本次请求追踪 ID |
调用失败时,接口返回的 status 为 0,并在 msg 中给出可读的错误描述,同时通过 errcode 返回具体的业务错误码:
{
"status": 0,
"code": 0,
"msg": "未提供调用密钥",
"errcode": 11001,
"req_id": "b402df5e1d0721714393"
}
{
"status": 0,
"code": 0,
"msg": "积分余额不足",
"errcode": 11004,
"req_id": "b402df5e1d0721714393"
}
| errcode | 含义 |
|---|---|
| 11001 | 未提供调用密钥 |
| 11002 | 密钥错误 |
| 11003 | 密钥已禁用 |
| 11004 | 积分余额不足 |
| 11005 | 请求过于频繁(QPM 限制) |
| 11006 | 接口维护中 |
| 11007 | 接口已禁用 |
| 11008 | 接口不可用 |
| 11009 | 密钥校验暂不可用 |
| 11010 | 积分系统暂不可用 |
| 11011 | 收费接口须提供有效密钥 |
| 11012 | 鉴权方式错误 |
| 11013 | 接口不存在 |
| 11014 | ***地址无效 |
| 11015 | ***地址不允许 |
| 11016 | ***请求失败 |
| 11017 | 服务暂不可用 |
| 11018 | 请求方式不允许 |
| 11019 | 当前IP不在白名单内 |
| 11020 | 启用出口代理须提供有效密钥 |
| 11021 | 未配置可用出口代理 |
| 11022 | 出口代理不可用 |
| 11023 | 密钥已过期 |
| 11024 | 令牌分配积分不足 |
curl "http://api.tmini.net/apis/ipinfo?key=你的密钥&ip=106.224.48.17"
// PHP 示例
$url = 'http://api.tmini.net/apis/ipinfo?' . http_build_query([
'key' => '你的密钥',
'ip' => '106.224.48.17',
]);
$response = file_get_contents($url);
if ($response === false) {
exit("请求失败\n");
}
$result = json_decode($response, true);
if ($result['status'] == 1) {
echo "国家:" . $result['data']['country'] . "\n";
echo "省份:" . $result['data']['province'] . "\n";
echo "城市:" . $result['data']['city'] . "\n";
echo "区县:" . $result['data']['district'] . "\n";
echo "街道:" . $result['data']['street'] . "\n";
echo "运营商:" . $result['data']['isp'] . "\n";
echo "完整归属:" . $result['data']['location'] . "\n";
}
key 传递,示例:http://api.tmini.net/apis/ipinfo?key=你的密钥&ip=106.224.48.17。请仅使用该方式携带密钥调用。key、ip 均已正确填写,避免因参数错误产生无效请求;对同一 IP 的重复查询建议在业务侧做短时缓存以节省费用。ip 参数须为合法的 IP 地址(如 106.224.48.17),不支持传入域名、URL 或带有端口的地址,传入非法值将无法得到有效结果。multi_street 为多街道候选结果,street 为主定位街道。街道级定位基于网络特征推断,与实际物理位置可能存在偏差,风控、营销等场景请结合业务容忍度使用,勿作为唯一判定依据。risk 节点)仅供风控参考,评估结论会随时间与数据源变化,重要决策建议结合其他信号综合判断。latitude、longitude、zip_code、time_zone 等为字符串类型,数值计算时请注意类型转换;req_id 为请求标识,遇到问题反馈时请一并提供,便于排查。curl "http://api.tmini.net/apis/ipinfo?key=YOUR_API_KEY&ip=106.224.48.17"
# 或带错误检查
curl -s "http://api.tmini.net/apis/ipinfo?key=YOUR_API_KEY&ip=106.224.48.17" | jq -r 'if .code != 0 then "error" else .data.location end'