批量查询

单次调用最多可对 100 个 IPv4 地址进行分类。适用于处理突发流量的欺诈、风险和内容审核处理流程。

API 端点

POST https://vpn-proxy-detection.whoisxmlapi.com/api/v1/ip/batch

该 API 要求在每个请求的请求体中,参数均采用JSON 编码格式。

CURL 请求示例

curl https://vpn-proxy-detection.whoisxmlapi.com/api/v1/ip/batch -X POST -H "Content-Type: application/json" -d '{"apiKey": "YOUR_API_KEY", "ips": ["8.8.8.8", "1.1.1.1", "185.220.101.1"]}'

POST 请求正文示例

{
    "apiKey": "YOUR_API_KEY",
    "ips": [
        "8.8.8.8",
        "1.1.1.1",
        "185.220.101.1"
    ],
    "min_confidence": 0.5
}

注册后,需花费几分钟激活您的账户。

输入参数

apiKey

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

ips

必填。字符串数组。

待分类的 IPv4 地址列表。每次请求最多 100 条记录。

min_confidence

可选。浮点数。

系统仅返回信号置信度大于或等于该值的归因。

允许的值:[0, 1]。

默认值:0。

父子账户中的子账户 API 密钥的工作原理相同:使用子账户密钥进行调用时,将获取父账户订阅的套餐字段。

输出示例

{
    "results": [
        {
            "ip": "1.1.1.1",
            "network": "1.1.1.0\/24",
            "classification": "cdn",
            "provider": "Cloudflare",
            "confidence": 0.97,
            "source": "asn_classification",
            "detection_method": "asn_classification",
            "first_seen": "2024-01-15T08:30:00Z",
            "last_seen": "2026-05-20T11:04:00Z",
            "observation_count": 412,
            "hits_days_pct": null,
            "providers_num": 0,
            "confidence_decay": 0.0,
            "freshness_class": "current",
            "is_vpn": false,
            "is_proxy": false,
            "is_tor": false,
            "is_relay": false,
            "is_hosting": false,
            "is_cdn": true,
            "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": 97,
            "asn": 13335,
            "asn_org": "CLOUDFLARENET",
            "cdn_operator": "cloudflare",
            "asn_abuse": {
                "abuse_score": 4,
                "abuse_level": "low"
            },
            "metadata": {
                "raw_score": null,
                "signals": null,
                "dns_enrichment": null,
                "tls_enrichment": null
            },
            "observed_location": null
        },
        {
            "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-05-21T08: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": "ZWIEBELFREUNDE",
            "cdn_operator": null,
            "asn_abuse": {
                "abuse_score": 88,
                "abuse_level": "high"
            },
            "metadata": {
                "raw_score": null,
                "signals": null,
                "dns_enrichment": null,
                "tls_enrichment": null
            },
            "observed_location": null
        }
    ],
    "count": 2
}

Code: 200 OK.

输出参数

结果

数组。输入的每个 IP 对应一个分类对象,顺序与请求一致。

每个条目的格式与单个 IP 响应相同。有关各字段的说明,请参阅“发送请求”。

计数

整数。返回的分类数量。成功时,该值与输入数组ips的长度相等。

免费访问

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

速率限制

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

简介和免费注册查询

120 次请求/分钟

入门版

120 次请求/分钟

专业版

150 次请求/分钟

提升版

250 次请求/分钟

商业版

500 次请求/分钟

企业版

10,000 次请求/分钟(每个企业级密钥均适用此统一限制)


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

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

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

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