テスト
1 GB
$2.63
$2.63/GB
- まず1都市の1 ISPを確認
- ASN、州、都市、ZIPターゲティング
- HTTP、HTTPS、SOCKS5
ユースケース · QAとサポート
一部のチケットは1つのネットワークでのみ意味を持ちます。固定無線で失敗する、間違った都市が表示される、または1つのケーブルプロバイダーで画像が古いままであるなどです。そのネットワーク上の家庭用IPは、チケットを再現可能なテストに変えます。
クイック回答
1つのインターネットプロバイダーでしか発生しないバグを再現するには?
ネットワークバグの再現とは、顧客と同じ種類の接続から顧客の障害を再現することです。同じプロバイダー、同じ都市、できれば同じ時間帯に。Broadband Proxies はQAとサポートチームに、ASNと都市単位で米国の家庭用IPを提供します。スティッキーセッションは最大30分(家庭用デバイスがオフラインになった場合など、それより早くIPが変わることもあります)持続します。1 GBプランは$2.63で、KYC不要、支払いは暗号通貨です。
| よくあるチケット | 固定無線でのみ失敗、誤った都市や州が検出される、特定のネットワークで古いコンテンツ、不審としてブロックされる |
|---|---|
| ターゲティング | ASNと州、都市またはZIP、例:USERNAME-country-us-state-az-city-phoenix-asn-22773(フェニックスのCoxネットワーク) |
| スティッキーセッション | 最大30分(家庭用デバイスがオフラインになった場合など、それより早くIPが変わることもあります) |
| プロトコル | HTTP、HTTPS(CONNECT)、SOCKS5 |
| 記録すべき項目 | リクエストしたターゲティング、出口IP、発信元ASN、UTC時間枠、セッションID |
| 再現できないもの | 顧客のルーター、Wi-Fi、デバイス、ローカルDNS設定 |
| 価格 | 1 GBで$2.63、10 GBで$5.94、プロジェクトごとのサブユーザー |
レジデンシャル出口は、あなたのサービスに顧客ネットワークのパブリックIPを与えます。そのIPに紐づくロジックはすべて顧客と同じように動作します。よくあるチケットは4種類です。
プロキシはパブリックIPとそのネットワークをコピーするだけで、接続全体ではありません。顧客のルーター、Wi-Fi、ブラウザ拡張機能、デバイスには手が届きません。それらをカバーするにはブラウザのバージョンとスクリーンショットを求めてください。
DNSももう一つの限界です。プロキシ経由では、名前はISPのリゾルバーではなくプロキシネットワークによって解決される場合があるため、DNSのみのバグには別の方法が必要です。
IPv6にも注意が必要です。以下のチェックはapi.ipify.orgを使い、これはIPv4でのみ応答します。バグがIPv6でのみ現れる場合、プロキシテストではIPv4経路の可否を切り分けられます。残りを確認するにはネイティブのIPv6回線が依然必要です。
ネットワーク情報を収集する
ISP名、都市またはZIP、障害の発生時刻、エラーテキストを求めてください。当社の出口IPガイドのような検索で、パスワードやルーターアクセスを共有せずにASNを取得できます。
固定ユーザー名を設定する
フェニックスのCox顧客の場合:USERNAME-country-us-state-az-city-phoenix-asn-22773-session-bug4521-ttl-30。
出口を確認して記録する
以下のスクリプトを実行します。出口IP、発信元ASN、プレフィックスを記録し、IP変更を監視します。
セッション内で再現する
ブラウザやテストランナーで同じユーザー名を使います。セッション枠内で完了し、IP変更があれば記録します。
対照ネットワークで実行する
同じ都市の別のASNで手順を繰り返します。バグが消えれば、ネットワークが原因の一部です。
# Keep one sticky exit for a bug reproduction and write a record for the ticket.
import json
import time
from datetime import datetime, timezone
import requests
GATEWAY = "gw.broadbandproxies.com"
PORT = 7777
TARGET = "country-us-state-az-city-phoenix-asn-22773" # Cox network in Phoenix
SESSION = "bug4521"
USERNAME = "USERNAME-" + TARGET + "-session-" + SESSION + "-ttl-30"
PASSWORD = "PASSWORD"
proxy = "http://%s:%s@%s:%d" % (USERNAME, PASSWORD, GATEWAY, PORT)
proxies = {"http": proxy, "https": proxy}
def now():
return datetime.now(timezone.utc).isoformat(timespec="seconds")
def exit_ip():
r = requests.get("https://api.ipify.org?format=json", proxies=proxies, timeout=30)
r.raise_for_status()
return r.json()["ip"]
def origin(ip):
r = requests.get(
"https://stat.ripe.net/data/prefix-overview/data.json",
params={"resource": ip, "sourceapp": "bug-repro"},
timeout=30,
)
r.raise_for_status()
data = r.json()["data"]
return [a["asn"] for a in data.get("asns", [])], data.get("resource")
ip = exit_ip()
asns, prefix = origin(ip)
record = {"target": TARGET, "session": SESSION, "start_utc": now(), "exit_ip": ip,
"origin_asns": asns, "prefix": prefix, "ip_changes": []}
# Reproduce the bug in the browser now, with the same username.
# This loop only checks every 5 minutes that the exit IP has not moved.
for _ in range(5):
time.sleep(300)
current = exit_ip()
if current != ip:
record["ip_changes"].append({"time_utc": now(), "new_ip": current,
"origin_asns": origin(current)[0]})
ip = current
record["end_utc"] = now()
print(json.dumps(record, indent=2))| フィールド | 例 | 重要な理由 |
|---|---|---|
| リクエストしたターゲティング | country-us-state-az-city-phoenix-asn-22773 | 同僚が後で同じテストを実行できる |
| 出口IP | 203.0.113.24(ドキュメント用範囲) | サーバーとCDNのログで検索する |
| 発信元ASNとプレフィックス | AS22773、RIPEstatより | リクエストだけでなくネットワークを証明する |
| UTC時間枠 | 2026-10-18 14:05〜14:30 UTC | タイムゾーンをまたいでログ行と照合する |
| セッションIDとTTL | bug4521、30分 | IPが同じままだったかどうかを表示 |
| 結果 | /checkout/ で HTTP 403 | バグが再現されたかどうか |
| 対照 | AS209 上の同じ都市:エラーなし | ネットワーク起因とコード起因を切り分ける |
ご自身のサイト、アプリ、API、または所有者から依頼されたシステムをテストしてください。チケットの再現は数百リクエストではなく、数リクエストで済むはずです。当社の利用規約では、所有者の許可のないシステムへの大量リクエストやスキャンを禁止しています。
ユーザー名やセッションIDに顧客データを入れないでください。メールアドレスや氏名ではなく、bug4521のようなチケット番号を使用してください。銀行、政府、決済ポータルのサイトはすべてのプランでブロックされているため、決済プロバイダーのページはゲートウェイ経由でテストできません。
1回の再現は多くの場合、数回のページ読み込みとスクリプト内のチェックで済みます。1 GB($2.63)は1つのISPと都市でのトライアルをカバーします。10 GB($5.94)はテスター1人につきサブユーザー1つのQAチームに適しています。トラフィックは失効しません。
1 GB
$2.63
$2.63/GB
5 GB
$3.75
$0.75/GB
10 GB
$5.94
$0.59/GB
全プラン共通: プロトコル: HTTP、HTTPS、SOCKS5 · ターゲティング: 米国ではASN(ISP)、州、都市、ZIP。その他の地域では国。都市の可用性は異なります · セッション: ローテーションまたはスティッキー(最大30分) · 認証: ユーザー名とパスワード、またはIP許可リスト(最大10 IP) · 通信量の有効期限: 無期限
はい、スティッキーセッション内で可能です:最大30分(家庭用デバイスがオフラインになった場合など、それより早くIPが変わることもあります)。ユーザー名の末尾に-session-<id>-ttl-<minutes>を付け、すべてのツールで同じIDを再利用してください。開始時と終了時に出口IPを記録してください。変わっていた場合はチケットに記載してください。新しいIPは別のプレフィックスにある可能性があります。
多くの場合、可能です。T-Mobile Home InternetならAS21928、Verizon 5G HomeならAS22394をターゲットにしてください。これらのネットワーク上の出口は通常、顧客の回線と同様に他のユーザーとアドレスを共有します。Broadband Proxiesでは特定の出口が家庭用ゲートウェイか携帯電話かを判別できないため、デバイスの種類ではなくASNを記録してください。
ここに示す方法ではカバーしません。この例ではapi.ipify.orgで出口を確認しますが、これはIPv4のみで応答します。顧客の障害がIPv6でのみ発生する場合、プロキシテストではIPv4経路が正常かどうかしかわかりません。IPv6側はネイティブIPv6接続から確認してください。
ISP名、都市またはZIPコード、障害の発生日時、ブラウザ、正確なエラーです。最も役立つのはASNです。検索ページでログインなしに確認できます。パスワード、ルーターへのアクセス、顧客デバイスのリモート操作は決して求めないでください。ネットワーク側のテストには不要です。
はい。テスターまたはプロジェクトごとにサブユーザーを作成してください。各サブユーザーには独自の認証情報、トラフィック上限、使用量合計があります。パスワードの代わりに最大10個のIPを許可することもでき、固定アドレスのCIランナーに適しています。トラフィックは購入した1つのプランから消費されます。
ASNの在庫はネットワーク・都市・時間帯によって変動します。オンライン状況はチェックアウトで確認でき、ISPごとのIP数は公開していません。まずZIPを外し、次に都市を外し、ASNは州とともに維持してください。小規模なプロバイダーは特定の時間帯のみオンラインの場合があるため、顧客が報告した時刻に再試行してください。チケットにはどのレベルのターゲティングを使用したかを記載してください。
1 GB $2.63 · ASN込み · KYC不要
始める