快速回答
如何检查我的代理 IP 属于哪个 ISP?
通过代理请求 https://api.ipify.org 以获取出口 IP,然后直接(不经过代理)查询该 IP 的 RIPEstat 前缀概览。结果会列出宣告的 ASN 及其持有者,例如 Comcast 的 AS7922。使用 Broadband Proxies 时,将其与你设置的 asn- 进行比对;套餐 1 GB 起价 US$2.63(2026 年 10 月)。无需 KYC;仅支持加密货币。
验证 ISP 定向 IP 的三个步骤
通过代理获取出口 IP
使用你的定向用户名调用 api.ipify.org 之类的 IP 回显服务。如果使用粘性模式,请使用与你实际检查相同的会话 ID。
直接查询该 IP 的网络
直接(不经过代理)对该 IP 调用 RIPEstat 的 prefix-overview。它会返回前缀以及宣告它的 ASN(可能多个),并附有持有者名称。
比对并记录
为每条结果存储时间(UTC)、用户名过滤器、出口 IP 和宣告 ASN。如果 ASN 不一致,请轮换并将证据保留给支持团队。
如何用 Python 实现?
此版本仅使用 Python 标准库。将 USERNAME 和 PASSWORD 替换为你的代理凭据,并更改过滤器。
import json
import urllib.request
USER = "USERNAME-country-us-state-il-city-chicago-asn-7922" # Comcast in Chicago
PROXY = f"http://{USER}:[email protected]:7777"
via_proxy = urllib.request.build_opener(
urllib.request.ProxyHandler({"http": PROXY, "https": PROXY}))
ip = via_proxy.open("https://api.ipify.org", timeout=30).read().decode().strip()
# RIPEstat is called directly, not through the proxy
url = ("https://stat.ripe.net/data/prefix-overview/data.json"
f"?resource={ip}&sourceapp=asn-check")
data = json.load(urllib.request.urlopen(url, timeout=30))["data"]
asns = [(a["asn"], a["holder"]) for a in data.get("asns", [])]
print(ip, data.get("resource"), asns)
if 7922 not in [a for a, _ in asns]:
print("Different ASN: rotate and keep this line for support")如何用 Node.js 实现?
Node 内置的 fetch 不接受代理选项,因此此示例使用 undici 包(npm install undici)来处理经代理的请求。
import { ProxyAgent, fetch } from 'undici';
const user = 'USERNAME-country-us-state-ny-city-new_york-asn-701'; // Verizon Fios
const agent = new ProxyAgent({
uri: 'http://gw.broadbandproxies.com:7777',
token: 'Basic ' + Buffer.from(`${user}:PASSWORD`).toString('base64'),
});
const ip = (await (await fetch('https://api.ipify.org', { dispatcher: agent })).text()).trim();
const res = await fetch(`https://stat.ripe.net/data/prefix-overview/data.json?resource=${ip}&sourceapp=asn-check`);
const { data } = await res.json();
console.log(ip, data.resource, (data.asns || []).map((a) => `AS${a.asn} ${a.holder}`));有没有 curl 的一行命令检查?
有。第一条命令通过代理,第二条不通过。
IP=$(curl -s -x http://gw.broadbandproxies.com:7777 \
-U "USERNAME-country-us-state-tx-city-dallas-asn-11427:PASSWORD" https://api.ipify.org)
curl -s "https://stat.ripe.net/data/prefix-overview/data.json?resource=$IP&sourceapp=asn-check"为什么 ASN 可能与我申请的不一致?
- 区域或母公司 ASN。 Charter 在区域 ASN 上宣告原 Time Warner Cable 区域;达拉斯的 Spectrum IP 可能显示 AS11427,而你申请的是 AS20115。两者都属于 Charter。
- 近期合并。 原 Quantum Fiber 家庭可能显示 Lumen 的 AS209,尽管 AT&T 自 2026 年 2 月 2 日起拥有它们。
- 更具体的前缀宣告。 客户或合作伙伴网络可能宣告 ISP 范围的一部分。RIPEstat 随后会为该前缀列出两个 ASN。
- 不同的网络。 极少数情况下,该 IP 确实属于另一家 ISP。请轮换,并将记录的日志行发送给 [email protected]。
地理位置是另一个问题:在城市边界附近,城市查询可能与你定向的 ZIP 或城市不一致。请使用你的目标网站可能使用的地理位置服务进行检查。
我可以使用哪些公共查询?
RIPEstat 的 Data API 免费且有文档说明,并要求重度用户添加 sourceapp 参数。Hurricane Electric 的 BGP Toolkit(bgp.he.net)可在浏览器中显示某个 ASN 的前缀和对等方。PeeringDB 列出网络的公共对等详情,通常还提供更友好的名称。ARIN 的 whois 提供注册记录。保持礼貌的查询频率:每个出口 IP 一次就足够。
检查代理的 ASN:常见问题
我应该通过代理查询 RIPEstat 吗?
不。请直接查询。路由数据不取决于你从哪里发起查询,而通过代理发送查询会浪费你付费的流量:用量统计通过代理发送和接收的所有数据(上传和下载,包含标头)。1 GB = 1,000,000,000 字节。未到达目标即失败的连接尝试不计入。
一次检查会消耗多少流量?
非常少:api.ipify.org 的响应只有几百字节,加上 TLS 开销,几千次检查才用 1 GB。RIPEstat 调用走直连,不消耗你的代理流量。
我能用同样的方法检查 IPv6 出口吗?
RIPEstat 也支持 IPv6 地址。Broadband Proxies 介绍的是 IPv4 出口;如果你收到的是 IPv6 地址,同样的查询依然适用。
这段代码测试过吗?
这些片段已于 2026-10-18 做过语法检查(Python 用 py_compile,Node 用 node --check)。它们只调用 api.ipify.org 和 RIPEstat,这两个服务允许此类用途。运行前请先替换凭据。
如果 ASN 不对,我该给客服发送什么?
UTC 时间、不含密码的完整用户名、出口 IP 以及 RIPEstat 的查询结果。千万不要发送你的账号或代理密码。电子邮件回复时间为12小时内,全年7天服务。
来源 (3)
- RIPEstat Data API 文档 — RIPE NCC (2026-10-18)
- ipify API — ipify (2026-10-18)
- undici ProxyAgent — Node.js undici (2026-10-18)