IP 信誉查询 API
查询公网 IP 是否被垃圾邮件 / 攻击黑名单(DNSBL)列入、是否机房 IP、PTR 反向解析,并给出参考风险评分
数据来源:公开 DNSBL 黑名单、ip-api.com、DNS 反向解析
返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。
IP 信誉:DNSBL 黑名单、机房判断、PTR 与参考风险评分
GET /api/ip/reputation
请求参数
ip(必填):公网 IPv4 或 IPv6 地址(IPv6 只查归属与 PTR,暂不查黑名单);不接受内网和保留地址,示例8.8.8.8spamhaus:是否同时查询 Spamhaus ZEN:true / false。Spamhaus 拒绝来自公共 DNS 的查询,服务器使用公共 DNS 时会显示为 unavailable,示例false
返回字段
ip(string):查询的 IP(IPv4 映射的 IPv6 地址已还原为 IPv4)version(number):IP 版本:4 或 6riskScore(number):参考风险分 0~100,越高风险越大:每个列入的黑名单加 20~35 分(黑名单合计最多 70,只命中 Spamhaus PBL 加 5)、机房 IP 加 20、没有 PTR 加 10。仅供参考level(string):风险等级:低(0~29)/ 中(30~59)/ 高(60~100)reasons(array):每一项加分原因;没有任何风险项时为空数组reasons[].rule(string):规则:dnsbl 被黑名单列入 / dnsbl-cap 黑名单封顶调整(负分)/ datacenter 机房 IP / no-ptr 没有反向解析reasons[].points(number):该项分数(dnsbl-cap 为负数)reasons[].desc(string):中文说明dnsbl(object):DNSBL 黑名单查询结果(每个列表超时 3 秒)dnsbl.checked(number):成功得出结论(列入或未列入)的列表数dnsbl.listed(number):列入该 IP 的列表数dnsbl.unavailable(number):无法查询(被拒绝、超时、出错)的列表数dnsbl.lists(array):每个黑名单的结果dnsbl.lists[].zone(string):黑名单 DNS 区域,如 bl.spamcop.netdnsbl.lists[].name(string):黑名单名称dnsbl.lists[].status(string):listed 已列入 / clean 未列入 / unavailable 查询被拒绝(如 Spamhaus 返回 127.255.255.254)/ error 超时或出错 / skipped 未查询(IPv6)dnsbl.lists[].codes(array):黑名单返回的 A 记录(返回码,如 127.0.0.2);未列入时为空数组dnsbl.lists[].meanings(array):每个返回码的中文含义(如 DroneBL 的 127.0.0.9 表示 HTTP 代理)dnsbl.lists[].ms(number):查询耗时(毫秒)dnsbl.lists[].error(string|null):无法查询或出错的原因;正常时为 nullnetwork(object):IP 所属网络(与 /api/ip 相同数据源;为取得 ASN 总会请求 ip-api.com,失败时退回本地 ip2region 离线库的地名与运营商)network.asn(string|null):自治系统编号与名称,如 "AS15169 Google LLC";查询失败时为 nullnetwork.isp(string|null):运营商 / ISP 名称network.org(string|null):所属组织network.country(string|null):国家(中文)network.location(string|null):归属地(国家 省 市)network.datacenter(boolean):是否判断为机房 / 云服务商 IP:按 ASN、ISP、组织名(及含 vps / server / cloud 等字样的 PTR)匹配 Amazon、Google Cloud、阿里云、腾讯云、DigitalOcean、OVH、Hetzner、Vultr、Linode 等关键词,可能漏判或误判network.provider(string|null):匹配到的服务商名称;不是机房 IP 时为 nullnetwork.error(string|null):归属查询失败的原因(此时 asn 等为 null,机房判断只能依据 PTR);成功时为 nullptr(object):PTR 反向解析