跳转到主要内容
GET
/
v1
IP 地理定位 API
curl --request GET \
  --url https://ipgeolocation.cleariflow.com/v1
{
    "ip_address": "80.255.13.30",
    "city": null,
    "city_geoname_id": null,
    "region": null,
    "region_iso_code": null,
    "region_geoname_id": null,
    "postal_code": null,
    "country": "Germany",
    "country_code": "DE",
    "country_geoname_id": 2921044,
    "country_is_eu": true,
    "continent": "Europe",
    "continent_code": "EU",
    "continent_geoname_id": 6255148,
    "longitude": 9.491,
    "latitude": 51.2993,
    "security": {
        "is_vpn": true,
        "is_proxy": false,
        "vpn_provider": "NordVPN"
    },
    "timezone": {
        "name": "Europe/Berlin",
        "abbreviation": "CEST",
        "gmt_offset": 2,
        "current_time": "21:21:22",
        "is_dst": true
    },
    "flag": {
        "emoji": "🇩🇪",
        "unicode": "U+1F1E9 U+1F1EA",
        "png": "https://static.cleariflow.com/country-flags/DE_flag.png",
        "svg": "https://static.cleariflow.com/country-flags/DE_flag.svg"
    },
    "currency": {
        "currency_name": "Euros",
        "currency_code": "EUR"
    },
    "connection": {
        "autonomous_system_number": 201011,
        "autonomous_system_organization": "Core-Backbone GmbH",
        "connection_type": null,
        "isp_name": null,
        "organization_name": null
    }
}
API 操作极其简单:只需提供 API 密钥和 IP 地址,即可获取包括邮政编码、城市名称、地区信息、国家详情以及精确经纬度坐标在内的全面位置数据。

快速开始

REST 架构

与所有 Cleariflow API 一样,IP 地理定位 API 遵循 REST 原则。它采用可预测的资源导向 URL,并使用 HTTP 状态码指示错误。

HTTPS 安全

与 IP 地理定位 API 的所有通信必须使用 TLS 1.2 或更高版本的协议进行保护。

API 版本控制

所有 Cleariflow API 均包含版本控制。IP 地理定位 API 当前运行在第 1 版。

使用 API 密钥进行身份验证

API 密钥是访问 Cleariflow IP 地理定位 API 的唯一身份验证凭证。请注意,每个 Cleariflow API 需要独立的 API 密钥,这意味着 IP 地理定位和邮箱验证等不同服务需要不同的密钥。要对请求进行身份验证,需将 API 密钥附加到基础 URL。

基础 URL

https://ipgeolocation.cleariflow.com/v1/

地理定位端点

Cleariflow IP 地理定位 API 只需您的唯一 API 密钥,并自动从请求客户端检测 IP 地址。或者,您可以包含 “ip_address” 参数来指定要分析的特定 IP:
https://ipgeolocation.cleariflow.com/v1/
? api_key = YOUR_UNIQUE_API_KEY
& ip_address = 94.198.41.118 (optional)
这表示一次成功的请求,返回的 IP 地址及关联详情如下:
{
    "ip_address": "80.255.13.30",
    "city": null,
    "city_geoname_id": null,
    "region": null,
    "region_iso_code": null,
    "region_geoname_id": null,
    "postal_code": null,
    "country": "Germany",
    "country_code": "DE",
    "country_geoname_id": 2921044,
    "country_is_eu": true,
    "continent": "Europe",
    "continent_code": "EU",
    "continent_geoname_id": 6255148,
    "longitude": 9.491,
    "latitude": 51.2993,
    "security": {
        "is_vpn": true,
        "is_proxy": false,
        "vpn_provider": "NordVPN"
    },
    "timezone": {
        "name": "Europe/Berlin",
        "abbreviation": "CEST",
        "gmt_offset": 2,
        "current_time": "21:21:22",
        "is_dst": true
    },
    "flag": {
        "emoji": "🇩🇪",
        "unicode": "U+1F1E9 U+1F1EA",
        "png": "https://static.cleariflow.com/country-flags/DE_flag.png",
        "svg": "https://static.cleariflow.com/country-flags/DE_flag.svg"
    },
    "currency": {
        "currency_name": "Euros",
        "currency_code": "EUR"
    },
    "connection": {
        "autonomous_system_number": 201011,
        "autonomous_system_organization": "Core-Backbone GmbH",
        "connection_type": null,
        "isp_name": null,
        "organization_name": null
    }
}

请求参数

api_key
String
必填
您的唯一 API 密钥。请注意,每个用户为每个 Cleariflow API 拥有独立的 API 密钥,因此您的 IP 地理定位 API 密钥无法用于邮箱验证 API,例如。
ip_address
String
要定位的 IP 地址。支持 IPv4 和 IPv6 地址。请注意,若留空此参数,服务将定位发起请求的 IP 地址。
fields
String
要返回的顶级键的逗号分隔列表(例如 ?fields=country,security)。要包含 VPN/代理标志,使用 security——将返回整个对象(is_vpnis_proxy 以及存在时的 vpn_provider)。不支持单独使用 is_vpn 等嵌套键。

响应参数

API 响应以通用、轻量的 JSON 格式 返回。
ip_address
String
提交进行地理定位的 IP 地址。
city
String
城市名称。
city_geoname_id
String
城市的 geoname ID。
region
String
城市所在的州或省。
region_iso_code
Char[2]
州或省的 ISO 3166-2 代码。
region_geoname_id
String
州或省的 geoname ID。
postal_code
String
邮政编码。
country
String
国家名称。
country_code
Char[2]
国家的 ISO 3166-1 alpha-2 代码。
country_geoname_id
String
国家的 geoname ID。
country_is_eu
Boolean
若国家在欧盟内则为 true,否则为 false。
continent
String
大洲名称。
continent_code
Char[2]
两字母大洲代码:AF、AS、EU、NA、OC、SA、AN。
continent_geoname_id
String
大洲的 geoname ID。
longitude
Float
经度的小数值。
latitude
Float
纬度的小数值。
security.is_vpn
Boolean
当 IP 匹配枚举的 VPN 出口节点数据库(IP-to-VPN MMDB)时为 true
security.is_proxy
Boolean
当 IP 匹配代理数据库(IP-to-VPN MMDB)时为 true
security.vpn_provider
String
MMDB 中的 VPN 服务名称(例如 NordVPN)。当 is_vpnfalse 时省略。
timezone.name
String
IANA 时区数据库中的时区名称。
timezone.abbreviation
String
时区缩写,同样来自 IANA 时区数据库。
timezone.gmt_offset
String
时区相对于格林威治标准时间 (GMT) 的偏移。
timezone.current_time
String
本地时区的当前时间。
timezone.is_dst
Boolean
若该位置当前处于夏令时 (DST) 则为 true。
flag.svg
String
托管的国家 SVG 格式国旗链接。
flag.png
String
托管的国家 PNG 格式国旗链接。
flag.emoji
String
国家国旗的表情符号。
flag.unicode
String
国家国旗的 unicode 表示。
currency.currency_name
String
货币名称。
currency.currency_code
String
ISO 4217 格式的货币代码。
connection.connection_type
String
从 ASN 组织名称推断(例如 Cellular、Cable/DSL、Corporate、Cloud、Hosting)。VPN 和代理在 security 中报告,而非此处。
connection.autonomous_system_number
Uint32
自治系统编号。
connection.autonomous_system_organization
String
自治系统组织名称。
connection.isp_name
String
互联网服务提供商 (ISP) 名称。
connection.organization_name
String
组织名称。

限制响应字段

您可以选择仅接收 JSON 响应中的部分字段。为此,可在查询参数中包含 fields 值,列出要返回的顶级键的逗号分隔列表。 例如,仅获取 IP 的国家和城市的请求如下:
https://ipgeolocation.cleariflow.com/v1/
    ? api_key = YOUR_API_KEY
    & ip_address = 94.198.41.122
    & fields = country,city
响应如下:
{
    "city": "Vienna",
    "country": "Austria"
}

使用场景

定位网站访客

要从 IP 地址请求地理定位,只需在下方模板中包含您的唯一 API 密钥。 请注意,发起请求时无需知道访客的 IP。
$.getJSON("https://ipgeolocation.cleariflow.com/v1/?api_key=YOUR_UNIQUE_API_KEY", function(data) {
   console.log(data.ip_address);
   console.log(data.country);
})
这就是从访客获取地理定位和其他数据所需的全部内容!只有一个必需参数:您的唯一 API 密钥。

响应和错误代码

当请求因某种原因失败时,也会以 JSON 格式返回错误。错误包含错误代码和描述,详见下文。
CodeTypeDetails
200OK一切按预期运行。
204OK提交的 IP 没有位置数据。
400Bad request错误请求。
401Unauthorized请求不可接受。通常由于 API 密钥缺失或不正确。
422Quota reached由于 API 积分不足,请求被中止。(免费计划)
429Too many requests由于达到每秒允许请求数,请求被中止。免费计划的请求限制为每秒 1 次。
500Internal server error由于服务器端错误,无法完成请求。
503Service unavailable服务器不可用。

国家代码

以下是响应中使用的两字母 ISO 3166 Alpha 2 国家代码列表。在 CSV 中查看此列表。
国家名称国家代码
阿富汗AF
阿尔巴尼亚AL
阿尔及利亚DZ
美属萨摩亚AS
安道尔AD
安哥拉AO
安圭拉AI
安提瓜和巴布达AG
阿根廷AR
亚美尼亚AM
阿鲁巴AW
澳大利亚AU
奥地利AT
阿塞拜疆AZ
巴林BH
孟加拉国BD
巴巴多斯BB
白俄罗斯BY
比利时BE
伯利兹BZ
贝宁BJ
百慕大BM
不丹BT
玻利维亚BO
波斯尼亚和黑塞哥维那BA
博茨瓦纳BW
巴西BR
英属维尔京群岛VG
文莱BN
保加利亚BG
布基纳法索BF
布隆迪BI
佛得角CV
柬埔寨KH
喀麦隆CM
加拿大CA
开曼群岛KY
中非共和国CF
乍得TD
智利CL
中国CN
哥伦比亚CO
科摩罗KM
刚果CG
刚果民主共和国CD
库克群岛CK
哥斯达黎加CR
科特迪瓦CI
克罗地亚HR
古巴CU
库拉索CW
塞浦路斯CY
捷克CZ
丹麦DK
吉布提DJ
多米尼克DM
多米尼加共和国DO
东帝汶TL
厄瓜多尔EC
埃及EG
萨尔瓦多SV
赤道几内亚GQ
厄立特里亚ER
爱沙尼亚EE
斯威士兰SZ
埃塞俄比亚ET
福克兰群岛FK
法罗群岛FO
斐济FJ
芬兰FI
法国FR
法属圭亚那GF
法属波利尼西亚PF
加蓬GA
冈比亚GM
格鲁吉亚GE
德国DE
加纳GH
直布罗陀GI
希腊GR
格陵兰GL
格林纳达GD
瓜德罗普GP
关岛GU
危地马拉GT
根西岛GG
几内亚GN
几内亚比绍GW
圭亚那GY
海地HT
洪都拉斯HN
香港HK
匈牙利HU
冰岛IS
印度IN
印度尼西亚ID
伊朗IR
伊拉克IQ
爱尔兰IE
马恩岛IM
以色列IL
意大利IT
牙买加JM
日本JP
泽西岛JE
约旦JO
哈萨克斯坦KZ
肯尼亚KE
基里巴斯KI
科索沃XK
科威特KW
吉尔吉斯斯坦KG
老挝LA
拉脱维亚LV
黎巴嫩LB
莱索托LS
利比里亚LR
利比亚LY
列支敦士登LI
立陶宛LT
卢森堡LU
澳门MO
马达加斯加MG
马拉维MW
马来西亚MY
马尔代夫MV
马里ML
马耳他MT
马绍尔群岛MH
马提尼克MQ
毛里塔尼亚MR
毛里求斯MU
马约特YT
墨西哥MX
密克罗尼西亚FM
摩尔多瓦MD
摩纳哥MC
蒙古MN
黑山ME
蒙特塞拉特MS
摩洛哥MA
莫桑比克MZ
缅甸MM
纳米比亚NA
瑙鲁NR
尼泊尔NP
荷兰NL
新喀里多尼亚NC
新西兰NZ
尼加拉瓜NI
尼日尔NE
尼日利亚NG
朝鲜KP
北马其顿MK
北马里亚纳群岛MP
挪威NO
阿曼OM
巴基斯坦PK
帕劳PW
巴拿马PA
巴布亚新几内亚PG
巴拉圭PY
秘鲁PE
菲律宾PH
波兰PL
葡萄牙PT
波多黎各PR
卡塔尔QA
留尼汪RE
罗马尼亚RO
俄罗斯RU
卢旺达RW
圣赫勒拿SH
圣基茨和尼维斯KN
圣卢西亚LC
圣马丁MF
圣皮埃尔和密克隆PM
圣文森特和格林纳丁斯VC
萨摩亚WS
圣马力诺SM
圣多美和普林西比ST
沙特阿拉伯SA
塞内加尔SN
塞尔维亚RS
塞舌尔SC
塞拉利昂SL
新加坡SG
圣马丁SX
斯洛伐克SK
斯洛文尼亚SI
所罗门群岛SB
索马里SO
南非ZA
韩国KR
南苏丹SS
西班牙ES
斯里兰卡LK
圣巴泰勒米BL
苏丹SD
苏里南SR
瑞典SE
瑞士CH
叙利亚SY
台湾TW
塔吉克斯坦TJ
坦桑尼亚TZ
泰国TH
巴哈马BS
多哥TG
汤加TO
特立尼达和多巴哥TT
突尼斯TN
土耳其TR
土库曼斯坦TM
特克斯和凯科斯群岛TC
图瓦卢TV
乌干达UG
乌克兰UA
阿联酋AE
英国GB
美国US
乌拉圭UY
美属维尔京群岛VI
乌兹别克斯坦UZ
瓦努阿图VU
梵蒂冈VA
委内瑞拉VE
越南VN
瓦利斯和富图纳WF
也门YE
赞比亚ZM
津巴布韦ZW

其他说明

重要计费信息:您处理的每个 IP 地址消耗一次积分。按请求提交计费,无论响应是否成功。因此,即使提交无效 IP 地址如 “fda3346ds”,仍会从您的账户扣除一次积分。