提出请求

将单个 IP 地址分类为 VPN、代理、Tor 出口节点、主机/CDN 或家庭/移动代理。

API 端点

GET https://vpn-proxy-detection.whoisxmlapi.com/api/v1/ip/185.220.101.1?apiKey=YOUR_API_KEY
注册后,需花费几分钟激活您的账户。

Postman 集合

Postman 是一款桌面和网页应用程序,用户可通过图形界面向 API 发送请求。我们建议 用户在探索API功能时, 以及在排查应用程序问题时,将 Postman与 WhoisXML API 端点配合使用

WhoisXML API 的 Postman 集合可通过以下链接访问:

该集合包含一个预配置的环境。您需要设置 api_key 变量,以便触发每次请求。“我的产品”页面获取个人 API 密钥。如果您有关于 API 的疑问,请联系我们

输入参数

apiKey

必填。请在“我的产品”页面获取您的个人 API 密钥。

ipAddress

必填。待分类的 IPv4 地址。应作为请求 URL 的路径段进行指定,例如/api/v1/ip/185.220.101.1

输出示例

{
    "ip": "185.220.101.1",
    "network": "185.220.101.0\/24",
    "classification": "tor",
    "provider": null,
    "confidence": 1.0,
    "source": "port_scan",
    "detection_method": "port_scan",
    "first_seen": "2024-01-15T08:30:00Z",
    "last_seen": "2026-06-08T08:59:09Z",
    "observation_count": 127,
    "hits_days_pct": 47.78,
    "providers_num": 0,
    "confidence_decay": 0.6650,
    "freshness_class": "current",
    "is_vpn": false,
    "is_proxy": false,
    "is_tor": true,
    "is_relay": false,
    "is_hosting": false,
    "is_cdn": false,
    "is_residential_proxy": false,
    "is_residential_proxy_high_confidence": false,
    "is_residential_proxy_mobile": false,
    "is_open_proxy": false,
    "is_corporate_vpn": false,
    "risk_score": 100,
    "asn": 60729,
    "asn_org": "TORSERVERS-NET - Stiftung Erneuerbare Freiheit, DE",
    "cdn_operator": null,
    "asn_abuse": {
        "abuse_score": 88,
        "abuse_level": "high",
        "flagged_ratio": 0.62,
        "flagged_ip_count": 1240,
        "total_announced_ips": 2000
    },
    "metadata": {
        "raw_score": 100,
        "signals": { "open_ports": [9001, 9030] },
        "dns_enrichment": null,
        "tls_enrichment": null
    },
    "observed_location": null
}

Code: 200 OK.

输出参数

IP

查询到的 IPv4 地址,已返回。

网络

字符串或 null。该 IP 所属的 CIDR 范围(如已知)。

分类

字符串。该 IP 的检测类型。

允许的值:vpncorporate_vpnproxyhostingcdntorrelayresidential_proxyresidential_proxy_likelyresidential_proxy_mobiledatacenter_proxymobile_proxysuspected_vpnsuspected_proxyunknown

提供商

字符串或 null。IP 的归因提供商(例如 VPN 品牌、住宅代理网络、主机服务商)。若无归因信息,则为 null。

性质

取值范围在 [0, 1] 之间。表示分类结果的校准置信度。数值越高,表明证据越充分。

来源

字符串。生成该记录的检测方法(例如:mslmport_scanproxy_enumnetflow_analysisasn_classification)。

检测方法

字符串。与相同(旧字段,为保持向后兼容性而保留)。

首次出现时间

字符串(ISO-8601)或空值。首次检测到该 IP 地址的时间。

最近出现时间

字符串(ISO-8601)或空值。上次检测到该 IP 地址的时间。

观察次数

整数。该 IP 地址被检测到的总次数(命中次数)。

观测预测天数

浮点数或空值。持久性:在滚动90天观测窗口内,该IP被观测为活跃代理/VPN出口的天数占比(唯一观测天数 ÷ 90 × 100)。

High (>50) indicates a consistently active exit; low (<5) indicates sporadic or one-shot activity. Null when the result comes from a network-range detection with no per-IP observation history.

提供者数值

整数。该 IP 被观察到作为出口的各不同代理/VPN 网络的数量。值为 2 或更大表示该 IP 在多个商业网络中共享或被转售——这是强烈的代理信号。0表示没有按 IP 进行的枚举历史记录(仅进行范围级检测)。

置信度衰减

取值范围在 [0, 1.5] 之间。综合证据强度得分:近期性因子 × 一致性 × 多来源加权。大于 1.0 的值表示来自多个来源且每日活跃的 IP 地址;0.0表示在点级别从未观察到。若需获得归一化的 0–1 得分,请使用min(confidence_decay, 1.0)

新鲜度等级

字符串。基于last_seen 生成的观察过期桶,因此无需进行日期运算即可进行过滤。

允许的值:当前(过去一天内观测到的)、近期(上周)、过期(过去90天内)、冻结(超过90天前,或从未观测到)。

is_vpn

Boolean. True if the classification is in {vpn, vpn_concentrator, corporate_vpn, commercial_vpn, vpn_hosting} (confirmed VPN endpoints). Does not include tor, relay, suspected_vpn, or vpn_suspecttor/relay have dedicated booleans; suspected_vpn/vpn_suspect are corroboration-only signals that do not set is_vpn. This asymmetry with is_proxy is deliberate: suspected_proxy does set is_proxy, but suspected_vpn/vpn_suspect never set is_vpn.

is_proxy

布尔值。如果分类属于 {proxy,datacenter_proxy,mobile_proxy,suspected_proxy} 之一,则返回 True。包括住宅代理(参见is_residential_proxy)。若要匹配任何类型的代理,请将is_proxy 与 is_residential_proxy 结合使用(OR 运算)

is_tor

布尔值。如果该 IP 地址是 Tor 出口节点(分类为tor),则返回 true。

中继

布尔值。如果分类为“中继”(即一种保护隐私的中继服务,例如 Apple Private Relay),则返回 true。这与is_vpn 不同:中继服务通过由提供商运营的出口路由用户流量,且用户无法选择端点。

当前是否处于托管状态

布尔值。如果该 IP 属于某个数据中心/主机服务商,则返回 true。

CDN

布尔值。如果该 IP 地址属于内容分发网络,则返回 true。

is_residential_proxy

Boolean. True if the classification is in {residential_proxy, residential_proxy_likely, residential_proxy_mobile}. Mutually exclusive with is_proxy; use the more specific booleans below to filter further.

is_residential_proxy_high_confidence

布尔值。当分类结果等于residential_proxy时(即精度≥85%的等级)返回 true。是is_residential_proxy 的子集。

is_residential_proxy_mobile

布尔值。当分类 ==residential_proxy_mobile时为真——检测到作为代理的移动运营商 IP 地址。是is_residential_proxy 的子集。

is_open_proxy

布尔值。当该 IP 地址出现在公共开放代理列表中时,返回 true。这与is_proxy 不同:每个开放代理都是代理,但大多数代理并未出现在公共列表中。

is_corporate_vpn

布尔值。如果该 IP 属于设备级 VPN(如 Fortinet、Pulse Secure、Cisco AnyConnect 等),则返回 true。这是is_vpn 的子标志。

risk_score

[0, 100] 范围内的整数。计算方式为置信度 × 100,其中高风险分类类型会额外加10。

asn

整数或空值。宣布该 IP 地址的自治系统编号。

asn_org

字符串或 null。该 ASN 的注册组织名称。

cdn_operator

字符串或空值。规范化的 CDN 运营商品牌(小写),例如akamaifastlycloudflareaws_cloudfront。仅当分类 ==cdn 时才非空。

asn_abuse

对象或空值。ASN 级别的滥用评分。所有套餐均可使用;高级套餐(Growth+)可获得完整细分数据:

abuse_score— 整数 0–100,表示该 ASN 的滥用级别(所有层级)。

abuse_level— 字符串:严重(所有级别)。

flagged_ratio— 浮点数 0.0–1.0,表示该 ASN 中被标记 IP 的比例(增长+)。

flagged_ip_count— 整数,已标记 IP 的数量(增长+)。

total_announced_ips— 整数,该 ASN 宣布的 IP 总数(包含增长部分)。

元数据

对象。附加检测信号和富集数据(所有键均为可选):

raw_score— 数字,内部数值置信度(0–100)。

signals— 对象,检测信号(端口模式、协议等)。

dns_enrichment— 对象、DNS PTR 记录和 RDNS 历史记录。

tls_enrichment— 对象,TLS 证书分析。

观测位置

对象或空值。地理数据,仅限高级套餐(Growth+);若无观测位置数据,则为空值。键:

exit_country— 字符串或 null,表示出站 IP 的 ISO 3166-1 alpha-2 国家代码。

user_countries— 字符串数组或 null,表示观察到该 IP 地址用户所在的国家/地区。

user_country_count— 整数或空值,表示用户所在国家的不同国家数量。

observed_lat/observed_lon— 数值或空值,观测到的出口点的坐标。

observed_countries— 字符串数组,表示该汇聚点被观测到的国家。

observation_readings— 字符串或空值,关于观测数据的元数据。

免费访问

注册后,您将自动获得一个免费订阅套餐,查询次数上限为10次。

速率限制

API 请求在60 秒的滑动窗口内按 API 密钥进行速率限制。限制额度取决于您的订阅套餐:

免费版

2 次请求/分钟

入门版

30 次请求/分钟

专业版

100 次请求/分钟

提升版

250 次请求/分钟

商业版

500 次请求/分钟

企业版

定制服务——请联系我们


每月查询配额是单独计算的,并在价格页面上显示。

如果超出配额限制,API 将返回 HTTP429 状态码,并附带标准错误封装以及Retry-AfterX-RateLimit-Reset头部——请等待Retry-After秒后再尝试。

{"error": {"code": "rate_limited", ...}}

该 API 还提供专用的负载均衡器和高级端点,以实现更快的查询速度, 作为我们“高级版 API 服务”和“企业版 API 套餐”的一部分。