跳至正文
IP 情报

您需要了解的 IP 数据字段完整列表

GeoIPHub 线上响应中的每一个 IP 数据字段:10 个分组共 103 个字段,各附类型、真实示例值,并明确标出 11 个占位字段。

作者GeoIPHub 团队发布于更新于阅读时长阅读约 34 分钟
一条发光的长条,由十块面板组成,每块有六个单元格,象征 IP 数据响应中的十个字段分组

问起“从 IP 地址能获取哪些数据?”,多数回答只停留在“一个大致位置”。而这只是IP 情报全貌中最小的一部分。同一个地址还能告诉您它属于哪个网络,它是家庭线路还是租用的服务器,它是不是 VPN、Tor 出口或隐私中继,是否被某个封禁名单收录,以及它是不是经过验证的爬虫。关于检测类字段是如何构建的,请参阅 VPN 与代理检测的工作原理。

自七月版本以来,这份参考发生了很大变化。API 新增了三个字段,我们的表格漏掉了两个字段,一个 Tor 出口的评分从 79 变成了 100,还有几个字段返回的值与七月表格中的描述不符。下面的每个示例都来自 2026 年 10 月 22 日的 GET api.geoiphub.com/v1/lookup/{ip},您可以用免费的 IP 查询工具复现其中任何一个。

一个单元格被放大,悬在一排单元格之上,象征对单个字段的详细说明
十个分组中的每个字段,以及各自的用途。

我们在 2026 年 10 月 22 日的七个线上响应中统计出 103 个字段

我们于 2026 年 10 月 22 日 04:56 到 04:57(UTC)之间抓取了七个响应,统计出 10 个分组共 103 个字段。自七月以来,有五个字段是这份列表新增的,11 个是占位符。这七个地址都是公共基础设施,选择它们是为了点亮不同的分组:

IP它是什么2026 年 10 月 22 日的判定
185.220.101.1Tor 出口,TORSERVERS-NET,汉堡100,block
185.213.155.73Mullvad VPN 服务器,法兰克福100,block
66.249.66.1Googlebot0,allow
104.28.46.99Cloudflare 上的 iCloud Private Relay 出口9,allow
45.33.32.156scanme.nmap.org,一台 Linode 服务器10,allow
8.8.8.8Google 公共 DNS(任播)10,allow
1.1.1.1Cloudflare DNS(任播)10,allow

我们用一个小型 Node 脚本遍历了每个响应并列出所有叶子字段,其中 geo.country_names 因为是翻译映射,计作一个字段。七个响应的键完全相同,都是这 103 个。它们的分布如下:

分组字段数目前的占位符
ip10
asn120
geo150
whois80
network73(open_ports、service、cloud_region)
detection230
threat257(blocklist_sources、crawler.spoofed、botnet.last_seen、3 个 honeypot 字段、spammer_last_seen)
dns30
scoring40
meta51(sources)
合计10311

有五个字段是这份列表新增的。其中三个是 10 月新增到 API 的:detection.residential_proxy_status、residential_proxy_evidence 和 residential_proxy_last_seen。它们现在已列入 API 字段参考,并标注为保留字段。另外两个,threat.crawler.unverified 和 threat.spammer_last_seen,七月时就已经在响应中了,只是我们旧的表格漏掉了。七月列表中的字段没有被移除。

有 11 个字段是占位符。我们检查了 API 的响应构建器:其中十个在每次查询时都被写成固定的空值([]、"none" 或 0),而 crawler.spoofed 背后还没有数据源。另有八个字段带有数据但属于保留字段,我们不打印它们的值:blocklist_count、两个分组中的 ptr_pattern,以及五个住宅代理字段。下面的表格会标出这两种情况。

用一次 Tor 出口查询看这 10 个分组如何配合

通过追踪一个地址,最容易理解这些分组。下面是 Tor 出口 185.220.101.1 的真实响应,仅保留了能说明其情况的字段:

GeoIPHub API
{ "ip": "185.220.101.1", "asn": { "asn": 60729, "org": "TORSERVERS-NET - Stiftung Erneuerbare Freiheit", "asn_type": "hosting", "connection_type": "datacenter", "rpki": "valid" }, "geo": { "country_code": "DE", "city": "Hamburg (Hamburg-Nord)", "timezone": "Europe/Berlin", "geo_confidence": 0.8 }, "whois": { "org": "none", "netname": "ARTIKEL10", "status": "ASSIGNED PA", "registered": "2017-09-12T00:00:00.000Z" }, "network": { "ptr_record": "none", "fcrdns_valid": "none", "abuse_contact": "abuse@artikel10.org" }, "detection": { "is_vpn": false, "is_tor": true, "is_hosting": true, "is_anonymous": true, "anonymity_level": "high" }, "threat": { "is_spammer": true, "threat_types": ["spammer", "tor"], "dnsbl_sources": ["zen.spamhaus.org"] }, "scoring": { "fraud_score": 100, "confidence": 0.7402500000000001, "recommended_action": "block", "detection_methods": ["tor_exit", "datacenter_blocklisted", "no_ptr_datacenter", "known_spammer"] }, "meta": { "last_classified_at": "2026-10-22T04:56:41.816Z", "last_scanned": "2026-10-20T18:45:48.000Z", "latency_ms": 2 } }

这些分组相互印证。ASN 显示为托管,detection.is_tor 来自 Tor Project 的出口列表,threat.dnsbl_sources 显示被 Spamhaus ZEN 收录,而 scoring 分组把这一切汇总为 block,并列出触发的四种方法。

响应中还暴露了一个缺口。ptr_record 是 "none",因此触发了 no_ptr_datacenter,然而同一天早晨实时执行 dig -x 185.220.101.1 却返回了一个 tor-exit 主机名。对部分地址,API 存储的反向 DNS 落后于实时记录。这个缺口也是本文七月版本中展示的 rdns_tor 不再触发的原因。分组之间的这种交叉验证,正是需要携带这么多字段的原因。下面依次介绍每个分组。

1. IP 本身(ip)

ip 字段以字符串形式回显 API 所解析的确切地址。用它来确认您查询的就是您想查询的地址,尤其是在解析 X-Forwarded-For 请求头之后,选错跳数是一个典型的错误。它也是您自己缓存的天然键。

IPv4 和 IPv6 都可接受。如果您不确定自己的公网地址是什么,我的 IP 是什么工具会连同网站能从中推断出的一切信息一起显示。

2. 网络与 ASN 数据(asn)

asn 分组告诉您是哪个网络宣告了该地址,它是您能获得的最可靠的 IP 数据之一。每个可路由的 IP 都属于一个自治系统,这来自全球路由表,而不是估算。

字段类型它告诉您什么示例(8.8.8.8)
asnnumber宣告该 IP 的自治系统编号15169
orgstring运营该自治系统的组织GOOGLE - Google LLC
asn_typestring网络类别:isp、hosting、cdn、mobile、satellite、unknownhosting
user_typestring使用类别,例如 hosting、residential、cellular、content_delivery_networkhosting
ispstringISP 名称(目前与 org 的值相同)GOOGLE - Google LLC
domainstring与该网络关联的域名none
connection_typestringdatacenter、residential、mobile、satellite、unknowndatacenter
access_typestring根据 rDNS 标记读取的接入介质:fiber、cable、dsl、cellular、datacenterdatacenter
carrierstring移动运营商名称,适用于蜂窝网络 IPnone
mccstring移动国家代码,适用于蜂窝网络 IPnone
mncstring移动网络代码,适用于蜂窝网络 IPnone
rpkistringRPKI 路由起源验证:valid、invalid、unknownvalid

这些值随地址而变。1.1.1.1 返回 asn_type: "cdn" 和 user_type: "content_delivery_network",Googlebot 返回 user_type: "search_engine_spider"。Private Relay 出口返回 asn_type: "unknown"、connection_type: "unknown" 和 user_type: "consumer_privacy_network"。自七月以来有一处变化:8.8.8.8 现在返回 rpki: "valid",而我们文档中的示例仍显示 "invalid"。

需要关注的字段是 connection_type。消费者登录时出现的数据中心地址值得再看一眼。不过,仅仅是托管并不等于欺诈:45.33.32.156 是普通的托管,得分 10,allow。您可以用免费的数据中心 IP 检查检查任意地址,IP 地理定位 API 页面介绍了 ASN 模型。

3. 地理定位数据(geo)

geo 分组把地址放到地图上,这是最常被过度信任的分组。在我们执行的每次查询中,全部 15 个字段都带有数据。

字段类型它告诉您什么示例(1.1.1.1)
country_codestringISO 3166-1 alpha-2 国家代码AU
country_namestring国家名称Australia
country_namesobject以语言代码为键的本地化国家名称{ en, de, es, fr, ja, ... }
country_geoname_idnumber该国家的 GeoNames ID2077456
continent_codestring两位字母的大洲代码OC
continent_namestring大洲名称Oceania
continent_geoname_idnumber该大洲的 GeoNames ID6255151
is_in_european_unionboolean该国家是否为欧盟成员国false
flag_emojistring该国家的 Unicode 国旗🇦🇺
regionstring州、省或地区New South Wales
citystring最佳估计的城市Sydney
timezonestringIANA 时区,或 "none"Australia/Sydney
latitudenumber大致纬度-33.8688
longitudenumber大致经度151.209
geo_confidencenumber对城市答案的置信度,0 到 10.8

国家是可靠的,城市则是大致的。一项关于反向 DNS 地理定位的同行评审研究,使用 2018 年的数据,测得两个商业数据库的中位误差分别为 11.1 公里和 16.7 公里。更多证据见 IP 地理定位有多准确。请把城市当作一个半径,而不是一个图钉,也永远不要用 IP 去定位某个人。

请把 geo_confidence 与 detection.is_anycast 对照着读。1.1.1.1 为悉尼返回了 0.8,但它同时也是 is_anycast: true,因为同一个地址在许多地方同时被宣告。对于任播地址,城市只是几个可能位置之一。

还出现了两处缺口。我们查询的三个美国地址(8.8.8.8、Googlebot 的 66.249.66.1 和 45.33.32.156),timezone 全部返回 "none",而城市却已填写,所以需要时请自行推导时区。另外,Private Relay 出口 104.28.46.99 被定位到安哥拉的罗安达,而 Apple 自己的出口列表把该地址段放在赞比亚的卢萨卡。对于中继,请以 Apple 列表中的行为准获取位置,我们在将中继 IP 与 Apple 出口列表进行匹配中对此有说明。

4. WHOIS 与注册数据(whois)

whois 分组说明了谁在何时注册了该地址段,数据通过 RDAP 从五个区域互联网注册机构获取。它增加了地理定位所缺失的归属层信息。

字段类型它告诉您什么示例(1.1.1.1)
orgstring注册组织APNIC and Cloudflare DNS Resolver project
countrystring注册国家(可能与 geo 不同)AU
netnamestring网段名称APNIC-LABS
statusstring该地址段的分配状态ASSIGNED PORTABLE
registeredstring (ISO 8601)注册日期(若有公布)2011-08-11T00:00:00.000Z
last_changedstring (ISO 8601)注册机构记录上次变更的时间2023-04-26T22:57:58.000Z
has_vpn_keywordsboolean注册信息文本匹配了 46 个 VPN 关键词之一false
has_hosting_keywordsboolean注册信息文本匹配了 27 个托管关键词之一false

覆盖情况因注册机构而异。8.8.8.8 和 45.33.32.156 的 org、netname、status 和 last_changed 都返回了 "none",只填充了 country 和 registered。Mullvad 服务器的记录则很丰富:netname: "NET-31173-185-213-155-0-24",注册于 2017-07-19,最近变更于 2025-11-11。

关键词标记只是辅助证据,绝不能作为标记某个地址的唯一理由。七个地址的这两个标记全部为 false,包括 Mullvad 服务器,其注册信息中的 org 写的是“31173 Services AB infrastructure in Frankfurt, DE.”,丝毫没有提到 VPN。这就是后面几节中的服务商名单更为重要的原因。

5. 网络证据(network)

network 分组包含反向 DNS 和注册机构的滥用联系人。它的七个字段中,有三个目前是占位符。

字段类型它告诉您什么示例(8.8.8.8)
ptr_recordstring已存储的反向 DNS(PTR)主机名dns.google
ptr_patternstringPTR 主机的分类。保留字段:我们不打印它的值(不显示)
fcrdns_validboolean, or "none"PTR 主机可解析回此 IP;未存储 PTR 时为 "none"true
abuse_contactstring注册记录中的滥用举报地址network-abuse@google.com
open_portsnumber[]占位符:目前始终为 [][]
servicestring占位符:目前始终为 "none"none
cloud_regionstring占位符:目前始终为 "none"none

当您需要举报某项活动时,就会用到 abuse_contact,在我们的七个地址中,有五个填充了该字段。fcrdns_valid 并不是单纯的布尔值:对于没有存储 PTR 的 Tor 出口、Mullvad 服务器和中继,它返回的是字符串 "none"。用 === false 做判断的代码会漏掉这种情况。

不要未经检查就相信已存储的 PTR。对于 Googlebot 的 66.249.66.1,已存储的 ptr_record 属于相邻地址,而实时的 dig -x 返回的是 crawl-66-249-66-1.googlebot.com。同一天早晨,我们用 dig -x 确认了 8.8.8.8 的值(dns.google)和 1.1.1.1 的值(one.one.one.one)。

即使探测有应答,open_ports 也是空的。每次查询它都被写成 []。请注意,Mullvad 服务器的 wireguard_open 并不是探测结果:它表示 Mullvad 的服务器列表将该服务器标记为 WireGuard。在该字段接入之前,请从 scoring.detection_methods 中读取 openvpn_open 之类的探测结果。

6. VPN、代理、Tor 与中继检测(detection)

detection 分组回答该地址是否会匿名化其用户,以及如何匿名化。它有 23 个字段,是最大的分组,其中三个是自七月以来新增的。

字段类型它告诉您什么示例(185.213.155.73,Mullvad)
is_proxyboolean在主动探测中表现为开放代理false
is_vpnboolean通过握手、服务商名单、ASN 或 WHOIS 判定为 VPN 基础设施true
is_torboolean在 Tor Project 的出口列表上,每日刷新false
is_hostingboolean托管或云基础设施true
is_relayboolean隐私中继,与 VPN 分开报告false
is_mobileboolean移动运营商网络false
is_satelliteboolean卫星 ISPfalse
is_anycastboolean从多个地点宣告false
is_residential_proxyboolean保留字段:并非可用功能,请勿依赖(不显示)
is_public_proxyboolean公开列出的开放代理false
is_anonymousboolean适用 VPN、代理或 Tor 时为 truetrue
proxy_typestring检测到的代理的协议none
anonymity_levelstringnone、low、medium 或 highmedium
vpn_providerstringVPN 运营方名称(在名单上时)Mullvad
vpn_provider_tierstring由服务商名称派生的标签;请勿基于它构建逻辑(不显示)
relay_providerstring中继运营方名称none
proxy_scorenumber0 到 100 的代理可能性0
vpn_confidencenumber0 到 100;同时显示触发了哪条命名路径95
residential_proxy_statusstring2026 年 10 月新增,未收录于 /docs。保留字段(不显示)
residential_proxy_evidencestring2026 年 10 月新增,未收录于 /docs。保留字段(不显示)
residential_proxy_last_seenstring2026 年 10 月新增,未收录于 /docs。保留字段(不显示)
residential_proxy_scorenumber与 is_residential_proxy 一同保留(不显示)
last_seenstring (ISO 8601)检测结果上次变更的时间2026-10-20T20:17:50.000Z

vpn_provider 是需要圈出来的字段。大多数 API 都能说出某个 IP 是“一个 VPN”;说出运营方则需要服务商名单。我们根据九家服务商自己的服务器列表、一份公开的第三方列表,或一张简短的已知 VPN 网络表来命名 VPN,vpn_confidence 显示触发的是哪条路径:这里的 95 表示来自 Mullvad 自己的列表。当地址不在任何名单上时,即使握手证明它是 VPN,vpn_provider 也会返回 "none"。我们在如何根据 VPN 自己的服务器列表识别其名称中追踪了这些路径,您可以用 VPN 检测测试测试任意地址。

is_relay 和 relay_provider 成对使用。104.28.46.99 返回了 is_relay: true、relay_provider: "iCloud Private Relay"、评分 9 和 allow。对于 Cloudflare 公布的 WARP 连接地址段(即 WARP 应用所连接的地址),API 也会返回 "Cloudflare WARP";对于 Apple 列表未涵盖的其他 Cloudflare 隐私出口,则会返回一个未写入文档的 "Cloudflare"。

is_anonymous 不涵盖中继。/docs 将其描述为对包括中继在内的任何匿名化服务都为 true,但中继出口返回的是 is_anonymous: false 且 anonymity_level: "medium"。该标记只跟踪 VPN、代理和 Tor,所以请单独读取 is_relay。

新增的三个住宅代理字段是保留字段。它们随 10 月的一次后端变更而出现,尚未写入文档。住宅代理检测目前不是我们提供的功能,所以请把全部五个住宅代理字段视为保留字段,不要基于它们制定规则。如果您担心这类流量,我们在这里说明了 IP 查询能看到什么、看不到什么。

7. 威胁与机器人情报(threat)

threat 分组询问该地址是已知的滥用来源,还是已知的友好机器人。它有 25 个字段,其中七个是占位符。

字段类型它告诉您什么示例(66.249.66.1,Googlebot)
is_abusiveboolean在以滥用为重点的威胁数据源中false
is_bogonboolean未分配或保留的地址空间false
is_crawlerboolean已知的爬虫或 AI 机器人true
is_spammerboolean已知的垃圾信息来源false
is_scannerboolean全互联网范围的扫描器地址段false
is_botnetboolean僵尸网络 C2 地址(Feodo Tracker 数据)false
is_cgnatboolean运营商级 NAT;评分会被封顶false
threat_typesstring[]适用的每一个威胁类别[]
blocklist_countnumber保留字段:请勿依赖(不显示)
blocklist_sourcesstring[]占位符:目前未填充(不显示)
dnsbl_sourcesstring[]3 个 DNS 封禁名单区域中,哪些收录了它[]
crawler.verifiedboolean匹配了运营方的官方 IP 地址段true
crawler.unverifiedboolean像爬虫但不在官方地址段内false
crawler.spoofedboolean占位符:尚无数据源(不显示)
crawler.namestring机器人名称,不含连字符Googlebot
crawler.operatorstring谁在运营该机器人Google
crawler.categorystring机器人类别search_engine
crawler.verification_methodstring身份是如何确认的ip_range_list
botnet.rolestring在僵尸网络中的角色(若已知)none
botnet.familystring恶意软件家族(若已知)none
botnet.last_seenstring占位符:目前始终为 "none"none
honeypot.hits_30dnumber占位符(不显示)
honeypot.typestring占位符(不显示)
honeypot.last_hitstring占位符(不显示)
spammer_last_seenstring占位符:目前始终为 "none"none

Tor 出口补全了这张表的另一半:is_spammer: true、threat_types: ["spammer", "tor"] 和 dnsbl_sources: ["zen.spamhaus.org"]。Mullvad 服务器返回了 threat_types: ["vpn"],所以这个数组也会回显匿名化标记。

crawler 对象是机器人决策所在之处。对于 66.249.66.1,API 返回了 verified: true、name: "Googlebot"、operator: "Google" 和 verification_method: "ip_range_list",匹配的是来自 10 个运营方的 19 个官方爬虫地址段数据源。我们在 10 月的查询中见过的类别有 search_engine、ai 和 fetcher。名称会去掉连字符,所以 Google 的用户触发抓取器返回为 GoogleUserTriggeredFetcher。

欺骗检测发生在您的代码里。API 只能看到 IP,永远看不到 User-Agent。声称自己是 Googlebot 但返回 crawler.verified: false 的请求就是未经验证的,这个比较需要由您来做。我们在按 IP 检测机器人和通过 IP、rDNS 和 CIDR 验证 AI 爬虫中展示了这一点。

is_cgnat 应该让决策变得更宽松,而不是更严格。CGNAT 地址由许多用户共享,所以评分在此被封顶,不应因为一个恶意用户而封掉整个运营商。该分组背后的数据源,请参阅威胁情报概览。

8. 反向 DNS(dns)

dns 分组重复了 network 中的三个反向 DNS 字段,因此只需要 rDNS 的代码可以读取这一个小对象。在我们抓取的每个响应中,这些值都与 network 中的副本相同。

字段类型它告诉您什么示例(1.1.1.1)
ptr_recordstring已存储的 PTR 主机名one.one.one.one
ptr_patternstring保留字段:我们不打印它的值(不显示)
fcrdns_validboolean, or "none"PTR 可解析回此 IPtrue

fcrdns_valid 是值得信任的那个。能正向解析回同一个 IP 的 PTR,比单独一个 PTR 字符串是强得多的证据,因为任何控制反向区域的人都可以设置后者。第 5 节的提醒同样适用:在引用之前,请先把已存储的 PTR 与实时的 dig -x 对比一下。

9. 风险评分(scoring)

scoring 分组把证据转化为决策。它有四个字段,而 detection_methods 是让评分可审计的那一个。

字段类型它告诉您什么示例(185.220.101.1,Tor)
fraud_scorenumber0 到 100 的风险评分,越高越危险100
confidencenumber判定背后的证据强度,0 到 10.7402500000000001
recommended_actionstringallow、review、step_up 或 blockblock
detection_methodsstring[]触发的具体信号tor_exit, datacenter_blocklisted, no_ptr_datacenter, known_spammer

fraud_score 综合了 36 项加权理由,其中有些理由是减分的。Googlebot 就是个例子:datacenter_ip 和 verified_crawler 都触发了,评分最终落在 0。中继永远不会达到 block,因为中继评分被封顶在 60。recommended_action 把评分映射到各个区间:

评分recommended_action含义
0 到 25allow没有明显的风险证据
26 到 50review触发了一些信号;记录并观察
51 到 75step_up有实质性证据;增加验证挑战
76 到 100block来自多个信号的强有力证据

请把 confidence 作为数字而不是字符串来输出:它返回时带有完整的浮点噪声。我们在 IP 欺诈评分指南和每项理由如何设定评分及其置信度中解释了该模型,并在为登录、注册和结账选择 IP 欺诈评分阈值中说明了阈值的设置位置。您可以用 IP 欺诈评分检测对任意地址打分。

10. 元数据(meta)

meta 分组为答案标注时间并标识该请求。它的五个字段中有两个的含义与字面名称所暗示的不同。

字段类型它告诉您什么示例(104.28.46.99)
last_classified_atstring (ISO 8601)此响应的构建时间2026-10-22T04:56:51.010Z
last_scannedstring (ISO 8601)此 IP 的检测结果上次变更的时间2026-10-20T18:52:36.000Z
request_idstring本次查询的唯一 ID;联系支持时请引用aa25852e-0dc1-4fd6-8780-3b9283d13aba
latency_msnumber服务器端处理时间3
sourcesstring[]占位符:目前始终为 [][]

last_classified_at 是响应时间,而不是分类时间。在全部七次查询中,它都落在我们发出请求前后约一秒之内。请改用 last_scanned 来判断新鲜度。在每个响应中它与 detection.last_seen 的值相同,七个都标注为 10 月 20 日。

过期的 IP 数据就是错误的 IP 数据,因为地址段会易手。如果您认为某项分类有误,就引用 request_id。在这七次查询中,服务器端延迟为 0 到 3 毫秒。

其他服务商如何命名相同的字段

其他 IP 数据服务商涵盖的内容有所重叠,但字段名称不同,有的把更丰富的字段放在更高的套餐里。我们在 2026 年 10 月 22 日阅读了三家服务商的公开文档,只保留了这些页面上明确陈述的内容。

服务商其文档中的字段其文档所述最接近的 GeoIPHub 字段
MaxMindlocation.accuracy_radius坐标周围“以公里为单位的大致精度半径”geo.geo_confidence(0 到 1,没有半径)
MaxMindtraits.user_type15 个取值,包括 consumer_privacy_network、content_delivery_network 和 search_engine_spiderasn.user_type,在我们的查询中返回了同样的这三个字符串
MaxMindanonymizer 对象匿名化标记从 traits 移到一个独立对象中,其中包含 provider_namedetection.vpn_provider
IPinfovpn, proxy, tor, relay, hosting, serviceservice 是“VPN、代理或匿名化服务的名称”detection.is_* 标记、vpn_provider、relay_provider
IPinfo套餐覆盖范围Core 只包含 is_anonymous 和 is_hosting;Plus 和 Max 使用 /anonymous 端点所有套餐都提供每一个字段
IPinfoasn.type给出的示例:isp、business、hosting、educationasn.asn_type
IPQualityScorefraud_score基于 IP、用户代理、语言及其他可选输入构建;75 以上为可疑,并建议在 90 以上进行标记或封禁scoring.fraud_score,仅基于 IP;高于 75 即 block
IPQualityScoreis_crawler经确认的搜索引擎爬虫,通过主机名或 IP 验证threat.crawler.verified,通过官方 IP 地址段
IPQualityScoreconnection_typeResidential、Corporate、Education、Mobile 或 Data Centerasn.connection_type

来源:MaxMind GeoIP 网络服务响应、IPinfo 隐私检测数据、IPinfo ASN 数据和 IPQualityScore 代理检测响应参数。

由此得出两点实用的结论。评分的刻度只有对照其文档所述阈值才有意义:IPQualityScore 的 75 是“可疑”,而我们的 76 就已经是 block。此外,同名字段可能含义不同,所以请按文档所述的含义而不是名称来映射字段。我们的选择 IP 数据服务商的买家清单把这点变成了一个可以对任何 API 运行的简短测试。

每项决策该关注哪些 IP 数据字段

您很少需要同时用到全部 103 个字段。把字段与决策匹配起来,并跳过占位符:

使用场景最重要的字段注意事项
登录或结账时的欺诈检查scoring.fraud_score、recommended_action、detection_methods、detection.is_vpn、is_tor、is_proxy不要仅凭地理位置硬性封禁;is_cgnat 封顶评分是有原因的
地域合规与授权geo.country_code、geo.region、detection.is_relay城市是大致的;中继的地理位置可能与 Apple 的列表不一致
机器人与爬虫管理threat.crawler.verified、crawler.name、crawler.category请自行与声称的 User-Agent 对照;crawler.spoofed 是占位符
滥用举报与调查network.abuse_contact、whois.netname、threat.dnsbl_sources引用已存储的 PTR 之前,先用 dig 检查
本地化geo.country_code、geo.timezonetimezone 可能是 "none";对任播 IP,geo_confidence 只是个提示

在调查时,阅读各个分组的顺序和字段本身同样重要。我们的调查 IP 地址的分步指南用三个真实 IP 演示了十二项被动检查,依次用到这些分组。

动手开发之前,先自行核对字段

字段列表会发生变化,所以最稳妥的习惯是自己数一数。运行一次查询并列出叶子键:

GeoIPHub API
curl -s https://api.geoiphub.com/v1/lookup/8.8.8.8 \ -H "x-api-key: YOUR_API_KEY" \ | jq 'del(.geo.country_names) | [paths(type != "object") | select(all(.[]; type == "string"))] | length + 1'

该过滤器把每个数组算作一个字段,跳过数组元素,并把 country_names 作为一个字段加回去。对于我们保存的七个响应,它全都输出了 103。如果您得到的数字不同,请把键与 API 参考和本文进行比对。如果您不带密钥测试,请控制调用节奏:一分钟内第 30 次无密钥请求就会返回 429,并把您的 IP 锁定两小时。

常见问题

从 IP 地址能获取哪些数据?

远不止位置。2026 年 10 月 22 日的一次 GeoIPHub 线上查询返回了 10 个分组共 103 个字段:IP 本身、网络(ASN、ISP、连接类型、RPKI)、大致地理定位、WHOIS 注册数据、网络证据与反向 DNS、VPN、代理、Tor 与中继检测(在名单上时会给出服务商名称)、威胁与已验证爬虫信号、可解释的 0 到 100 风险评分,以及请求元数据。其中 11 个字段是占位符,目前返回固定的空值。

IP 地址会暴露我的确切家庭住址吗?

不会。IP 地理定位估算的是一个大致区域(至多到城市或地区),绝不是街道地址或某个具体的人。城市级结果并不精确,移动网络、CGNAT 和 VPN 连接会让它更不可靠。任何声称仅凭 IP 就能达到地址级精度的说法都是夸大。

IP 数据中的 ASN 是什么?

自治系统编号(ASN)标识向互联网宣告某个 IP 地址的网络。例如,8.8.8.8 返回 AS15169,GOOGLE - Google LLC。ASN 及其所属组织来自全球路由表,因此是最可靠的 IP 数据字段之一,不同于对物理位置的猜测。

什么是 IP 欺诈评分,它是如何计算的?

IP 欺诈评分是一个 0 到 100 的数字,概括了某个地址看起来有多危险。GeoIPHub 综合 36 项加权理由,减去已验证爬虫等豁免类理由,并返回触发的具体方法以及建议操作:25 及以下为 allow,50 及以下为 review,75 及以下为 step_up,高于 75 为 block。我们在 2026 年 10 月 22 日查询的一个 Tor 出口得分为 100,列出了四种方法。

住宅 IP 和数据中心 IP 有什么区别?

住宅 IP 由消费级 ISP 分配给家庭连接;数据中心(托管)IP 属于云或服务器服务商。这种区别体现在 asn.connection_type 和 asn.asn_type 字段中。在我们 10 月份的七次查询中,Mullvad VPN 服务器、Tor 出口和 Googlebot 返回的都是 connection_type 为 datacenter。

所有 IP API 服务商在每个套餐中返回的字段都一样吗?

不一样。IPinfo 的文档称,其 Core 套餐只包含 is_anonymous 和 is_hosting 两个隐私标记,更完整的隐私字段在 Plus、Max 和定制 API 中提供。GeoIPHub 在所有套餐(包括每天 1,500 次查询的免费套餐)中返回每一个字段。

IP 地理定位中的精度半径是什么意思?

精度半径是以返回坐标为中心、以公里为单位的距离,真实位置很可能落在这个范围内。MaxMind 的文档将其记录为 location.accuracy_radius。GeoIPHub 不返回半径;它返回 geo.geo_confidence,一个 0 到 1 的值,当没有足够证据判断城市时为 0。

作者

GeoIPHub 团队

GeoIPHub API 背后的团队

由 GeoIPHub 团队撰写,即构建 GeoIPHub IP 情报 API 及其扫描器的团队。草稿在 AI 辅助下完成,并由团队编辑;除非标注为示例,API 示例均为针对线上 API 的真实查询。

分享本文
更多文章

相关 文章

  • IP 情报

    什么是 IP 情报?超越基础地理定位

    IP 情报是一个 IP 所揭示的一切:地理定位、ASN、基础设施、匿名化、威胁历史,以及可解释的风险评分。

    · 阅读约需 18 分钟
  • API 指南

    最佳 IP 数据服务:如何选择 IP 情报 API

    如何选出最佳 IP 数据服务:所有套餐提供完整数据、经过验证的 VPN 检测、可解释的风险评分,是真正的 API 与单薄 API 的分水岭。

    · 阅读约需 23 分钟
  • IP 情报

    什么是 ASN?自治系统号详解

    ASN(自治系统号)标识一个 IP 所属的网络及其运营者,是关于任何请求最能说明问题的信号之一。

    · 阅读约需 17 分钟