IP 风险画像查询

识别代理、VPN、秒拨、云手机与数据中心 IP,返回风险评分、网络归属与城市级地理位置(中国地址到区县)。风险数据每 10 秒更新。

10 项风险信号维度
10 秒风险数据更新
城市级地理定位精度(中国到区县)

最近捕获的代理类 IP

风险库最近几分钟内新捕获的代理、VPN、秒拨与云手机地址样本,每 30 秒换一批。分数答的是另一件事——此刻可核验证据的强度,随证据变旧而衰减;「刚被捕获」与「分数不高」可以同时成立。点任意一行即可查它。

    五条能力

    同一套判断口径:给的都是会过期的判断,不是长期标签。

    各国 IP 段与风险构成

    按国家与地区拆开的 IP 段归属、住宅与机房构成、主要运营商与 ASN,以及风险库近期新捕获的代理类 IP 个数。数据每日随地理库刷新。

    查看全部 244 个国家与地区 →中国另有 34 个省级页面

    开发者 API

    同一份画像能力,供你的风控系统直接调用。基础画像与 Pulse 历史评分两个接口的参数、返回字段、认证方式与错误码,都放在独立的 接口文档 里。

    查看 API 接口文档 →

    GEThttps://ip99.com/v1/ip/{ip}
    # 直接调用,无需 Key(未登录额度)
    curl https://ip99.com/v1/ip/8.8.8.8
    
    # 带上自助创建的 Key,额度按账户计
    curl -H "X-API-Key: 你的KEY" https://ip99.com/v1/ip/8.8.8.8

    要查历史某个时刻的风险状态(事后复盘、对账仲裁),用 Pulse 接口的 ?at=:GET /pulse/v1/ip/{ip}?at=2026-08-26T13:34:36Z(RFC3339 时刻,可回溯 30 天,返回的 computed_at 就是你指定的那一刻)。本页这个画像接口只答此刻,不支持回溯。Pulse 接口为专业版专属:没有专业版 Key 时返回 403 professional_required,免费的基础画像仍然可以直接调 /v1/ip;需要历史能力请联系销售。

    响应示例
    {
      "ip": "1.197.213.232",
      "computed_at": "2026-08-20T14:22:31Z",
      "evidence_state": "active",
      "risk": { "score": 62, "level": "medium", "signals": ["dialup_pool", "proxy"] },
      "network": { "asn": 4134, "usage_type": "DYN" },
      "geo": { "continent": "AS", "country": "CN", "subdivision": "CN-HA", "admin_code": "411281",
               "lat": 34.74509, "lon": 111.89353, "tz": "Asia/Shanghai" }
    }
    字段怎么读——尤其是 0 分

    本接口的响应不含中文。地名、场景、风险类型一律以标准码或稳定 slug 返回(码表见下),方便贵方直接入库与统计,不必在解析层处理中文编码。

    字段含义
    risk.score0–100。表示可核验风险证据的新鲜度与强度,随证据年龄衰减,不是「是攻击者」的概率。与 /pulse/v1/ip 的 score 同源同值——本产品对同一个 IP 只有一个分。
    risk.levelhigh / medium / low / none,由 risk.score 推出(0=none,1–29=low,30–69=medium,70–100=high)。none 的意思是「我方没有当前可核验的证据」,不等于安全。0 分放行前请知道这一点。
    computed_at本次评分针对的时刻。分随证据变旧而衰减,所以「算的哪一刻」是可核验的一部分:同一个 IP 隔几小时查两次分数不同是正常的。
    evidence_stateactive:有仍在计分的新鲜证据。stale:见过,但证据已过时效窗、分数为 0——可作弱特征,不宜单独作为拦截依据。none:我方从未见过——可能是覆盖盲区,不等于安全。策略平台请按这个字段分流,不要只看分数。
    risk.signals命中的信号 slug 数组,只列命中的,按字典序;一个都没命中时这个键不出现(此时 risk 只剩 score 与 level)。其中 hosting / mobile 由网络场景派生,本身不是风险。逐条证据与捕获时刻见 Pulse 接口。
    network / geo地址归属,与 /pulse/v1/ip 专业档同一套形状:network.asn、network.usage_type(场景码原样透传,如 IDC/DYN/MOB/GTW/EDU/GOV/CDN/ORG/DNS/NET/BOGON,完整码表与逐字段说明见 network 与 geo 逐字段);geo.continent(AS/EU/NA/SA/AF/OC/AN)、geo.country(ISO 3166-1 alpha-2)、geo.region / geo.city / geo.district(行政区的拉丁名:region / city 各国地址都会返回,中国地址也给;district 目前只有中国地址有(英文地名库对中国收录到区县、对其它国家收录到城市);库里没有的名字整个键不出现,是「库里没有」而不是 0)、geo.lat/lon/tz。中国的地址在地区名之外另给 geo.subdivision(ISO 3166-2,如 CN-ZJ)与 geo.admin_code(GB/T 2260 六位,精确到区县)。运营商名不返回——机器身份是 asn,拿它到公开注册库反查即可。
    档位每日配额如何获得
    未登录—直接调用,无需 Key
    免费版—登录后自助创建 API Key
    专业版按需定制在免费版字段之上增加观测天数与资源池标识(匿名句柄,同账户内稳定、跨账户不可对表),并可按历史时刻回溯评分;捕获时刻等字段另需签署数据处理协议。联系销售开通
    企业版按需定制联系销售

    网页查询与 API 共用同一份每日额度。未登录按公网 IP 计,登录后按账户计。专业版是数据档位,与配额档位相互独立:企业版不自动含专业版字段。以上都是调用我方的公网服务;若需要装在自己的机器上、数据完全不到我方这边,见 潮汐 Tide 或 Pulse 私有化(各自单独定价)。

    响应头与错误格式

    每次响应都带当日额度,不必额外查询:

    响应头含义
    X-Daily-Limit当前档位的每日配额
    X-Daily-Remaining今日剩余次数
    X-Daily-Reset配额重置时间(Unix 秒,北京时间零点)
    Retry-After仅在 429 时出现,距可重试的秒数

    所有错误都是同一结构,便于统一处理:

    { "error": { "code": "invalid_ip", "message": "不是合法的 IPv4/IPv6 地址:..." } }
    HTTPcode含义
    400invalid_ip不是合法 IP
    400reserved_ip私有/保留地址,没有公网风险画像
    401invalid_keyAPI Key 无效
    401revoked_keyAPI Key 已吊销
    401key_expiredAPI Key 已过期(测试期结束)
    404not_found接口路径不存在
    429rate_limited超出每分钟速率
    429quota_exceeded当日配额用尽(响应带 Retry-After)
    429quota_exceeded_anon未登录档当日配额用尽——登录后创建 Key 即提额

    我的 API Key

    登录后可自助创建,免费额度即刻可用。

    登录 / 注册

    联系销售

    需要更高配额、私有化部署或定制标签,留下联系方式,我们会尽快回复。