地域定位
从国家到城市、ASN 的定位方法,以及定位失败时怎么判断是哪个维度没有库存。
定位有两层:参数格式对不对(网关校验,错了返回 400),和有没有满足条件的 IP(没有返回 503)。这两层要分开排查。
四个定位维度
从粗到细:
# 只指定国家
USERNAME-country-US
# 国家 + 州省
USERNAME-country-US-state-California
# 国家 + 州省 + 城市
USERNAME-country-US-state-California-city-Los%20Angeles
# 指定 ASN(按运营商定位,排查时先不叠加州省/城市)
USERNAME-country-US-asn-AS7922
国家
两位大写 ASCII 字母。
curl -x 'http://USERNAME-country-DE:PASSWORD@GATEWAY_HOST:58971' https://ipinfo.io/json
网关只校验"两个大写字母"这个格式,不校验它是否真的是一个存在的国家码。所以 ZZ 能通过格式校验,但没有匹配的代理 IP 时会返回 503。可用的国家清单以控制台的地理目录为准。
州 / 省
state 和 region 是完全等价的别名,写哪个都一样,但不能同时写。
USERNAME-country-US-state-California # 等价
USERNAME-country-US-region-California # 等价
USERNAME-country-US-state-CA-region-California # 被拒:重复键
值是精确、区分大小写匹配。California 和 california 不是一回事,CA 和 California 也不是——取决于地理目录里存的是哪种写法。
城市
USERNAME-country-US-state-California-city-Los%20Angeles
两个容易踩的点:
空格必须写成 %20。 城市名里带空格很常见。
连字符必须写成 %2D。 否则会被当成参数分隔符:
# 错:解析成 city=Winston + 未知键 Salem → 整条被拒
USERNAME-country-US-state-NC-city-Winston-Salem
# 对
USERNAME-country-US-state-NC-city-Winston%2DSalem
城市定位要求同时提供国家和州省。 只给 country + city 通常无法找到匹配的代理 IP。
ASN
按运营商定位只有 asn 这一个参数,没有单独的 ISP 参数——运营商是用它的 ASN 编号来指定的。
USERNAME-country-US-asn-7922
USERNAME-country-US-asn-AS7922 # 等价,AS 前缀可选、不区分大小写
去掉 AS 前缀后必须是 1 到 4294967295 之间的正整数。
控制台的代理生成器里这一项可以直接按运营商名称搜——输入 Comcast 会列出它名下的 ASN 编号供你选择,拼进用户名的是编号(asn-7922)而不是名称。
定位失败怎么排查
参数格式全对但拿不到 IP 时,网关返回 HTTP 503(SOCKS5 reply 0x01)。响应头 X-NextProxy-Error: service_unavailable 与 JSON 正文说明暂不可用。逐个减少定位条件排查。
排查方法是从细到粗逐个去掉参数:
只留国家
curl -sx 'http://USERNAME-country-US:PASSWORD@GATEWAY_HOST:58971' https://api.ipify.org
这一步失败 → 该国家整体无库存,或你的账号没被授权这个产品/地区。
加回州省
curl -sx 'http://USERNAME-country-US-state-California:PASSWORD@GATEWAY_HOST:58971' https://api.ipify.org
这一步失败 → 州省的写法和地理目录不一致,或该州确实没有库存。
加回城市
curl -sx 'http://USERNAME-country-US-state-California-city-Los%20Angeles:PASSWORD@GATEWAY_HOST:58971' https://api.ipify.org
这一步失败 → 城市写法不对、转义漏了,或该城市没有库存。
最后换成 ASN
指定 asn 后可能没有匹配的代理 IP,与州省 / 城市组合也可能不可用。因此排查这一步时先移除州省和城市,再指定 ASN:
curl -sx 'http://USERNAME-country-US-asn-7922:PASSWORD@GATEWAY_HOST:58971' https://api.ipify.org
这一步失败就说明这个 ASN 当前没有可用的代理 IP,考虑改用城市定位。
定位粒度按产品线不同
验证定位是否生效
拿到 IP 后用一个带归属信息的接口交叉验证,不要只看 IP 变了:
curl -s -x 'http://USERNAME-country-US-state-California-city-Los%20Angeles:PASSWORD@GATEWAY_HOST:58971' \
https://ipinfo.io/json