Test
1 GB
2,63 USD
2,63 USD/GB
- Controlla prima un ISP in una città
- Targeting per ASN, stato, città e CAP
- HTTP, HTTPS, SOCKS5
Caso d'uso · QA e supporto
Alcuni ticket hanno senso solo su una rete. Fallisce sul fixed wireless, compare la città sbagliata o un'immagine è obsoleta su un certo provider via cavo. Un IP domestico su quella rete trasforma il ticket in un test che puoi ripetere.
Risposta rapida
Come riproduco un bug che si verifica solo con un provider internet?
La riproduzione di bug di rete significa ripetere il malfunzionamento di un cliente dallo stesso tipo di connessione: stesso provider, stessa città, idealmente stessa ora. Broadband Proxies fornisce ai team QA e supporto IP residenziali statunitensi per ASN e città. Le sessioni sticky durano fino a 30 minuti (l'IP può cambiare prima, ad esempio se il dispositivo domestico va offline). Un piano da 1 GB costa 2,63 USD; non c'è KYC e il pagamento è in criptovaluta.
| Ticket tipici | Fallisce solo su fixed wireless, città o stato rilevati errati, contenuto obsoleto su una sola rete, bloccato come sospetto |
|---|---|
| Targeting | ASN più stato, città o ZIP, ad es. USERNAME-country-us-state-az-city-phoenix-asn-22773 (rete Cox a Phoenix) |
| Sessioni sticky | fino a 30 minuti (l'IP può cambiare prima, ad esempio se il dispositivo domestico va offline) |
| Protocolli | HTTP, HTTPS (CONNECT) e SOCKS5 |
| Cosa registrare | Targeting richiesto, IP di uscita, ASN di origine, finestra temporale UTC, id sessione |
| Cosa non può replicare | Il router, il Wi-Fi, il dispositivo e le impostazioni DNS locali del cliente |
| Prezzo | 2,63 USD per 1 GB, 5,94 USD per 10 GB, sub-utenti per progetto |
Un'uscita residenziale fornisce al tuo servizio l'IP pubblico della rete del cliente. Qualsiasi logica basata su quell'IP si comporta come per il cliente. Emergono spesso quattro tipi di ticket.
Un proxy copia l'IP pubblico e la sua rete, non l'intera connessione. Il router, il Wi-Fi, le estensioni del browser e il dispositivo del cliente restano fuori portata. Chiedi la versione del browser e uno screenshot per coprire questi aspetti.
Anche il DNS è un limite. Attraverso un proxy, i nomi possono essere risolti dalla rete del proxy anziché dal resolver dell'ISP, quindi i bug solo DNS richiedono un altro metodo.
Anche IPv6 richiede attenzione. Il controllo qui sotto usa api.ipify.org, che risponde solo su IPv4. Se un bug appare solo su IPv6, un test con proxy può includere o escludere il percorso IPv4. Serve comunque una linea IPv6 nativa per confermare il resto.
Raccogli i dati di rete
Chiedi il nome dell'ISP, la città o lo ZIP, l'ora del malfunzionamento e il testo dell'errore. Una ricerca come la nostra guida all'IP di uscita fornisce l'ASN senza condividere password o accesso al router.
Crea un username sticky
Per un cliente Cox a Phoenix: USERNAME-country-us-state-az-city-phoenix-asn-22773-session-bug4521-ttl-30.
Conferma e registra l'uscita
Esegui lo script qui sotto. Registra l'IP di uscita, l'ASN di origine e il prefisso, poi controlla eventuali cambi di IP.
Riproduci all'interno della sessione
Usa lo stesso username nel browser o nel test runner. Concludi entro la finestra della sessione e annota eventuali cambi di IP.
Esegui una rete di controllo
Ripeti i passaggi su un altro ASN nella stessa città. Se il bug scompare, la rete è parte della causa.
# 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))| Campo | Esempio | Perché è importante |
|---|---|---|
| Targeting richiesto | country-us-state-az-city-phoenix-asn-22773 | Un collega può eseguire lo stesso test in seguito |
| IP di uscita | 203.0.113.24 (range di documentazione) | Cercalo nei log del server e della CDN |
| ASN di origine e prefisso | AS22773, da RIPEstat | Dimostra la rete, non solo la richiesta |
| Finestra temporale UTC | 2026-10-18 14:05 - 14:30 UTC | Corrisponde alle righe di log tra fusi orari |
| Id sessione e TTL | bug4521, 30 minuti | Mostra se l'IP è rimasto lo stesso |
| Risultato | HTTP 403 su /checkout/ | Il bug, riprodotto o meno |
| Controllo | Stessa città su AS209: nessun errore | Separa le cause di rete dalle cause nel codice |
Testa il tuo sito, la tua app o la tua API, oppure un sistema per cui il proprietario ti ha autorizzato. Riprodurre un ticket dovrebbe richiedere una manciata di richieste, non una scansione. La nostra Politica di utilizzo accettabile vieta flood e scansioni di sistemi senza il permesso del proprietario.
Tieni i dati dei clienti fuori da username e ID di sessione. Usa un numero di ticket come bug4521, mai un'email o un nome. I siti bancari, governativi e dei portali di pagamento sono bloccati su tutti i piani, quindi le pagine dei provider di pagamento non possono essere testate tramite il gateway.
Una singola riproduzione spesso richiede solo qualche caricamento di pagina più i controlli nello script. 1 GB (2,63 USD) copre una prova su un ISP e una città. 10 GB (5,94 USD) è adatto a un team QA con un sotto-utente per tester. Il traffico non scade mai.
1 GB
2,63 USD
2,63 USD/GB
5 GB
3,75 USD
0,75 USD/GB
10 GB
5,94 USD
0,59 USD/GB
In ogni piano: Protocolli: HTTP, HTTPS, SOCKS5 · Targeting: ASN (ISP), stato, città e CAP negli USA; paese altrove; disponibilità città variabile · Sessioni: Rotanti o sticky (fino a 30 minuti) · Autenticazione: Username e password, oppure un allowlist di IP (fino a 10 IP) · Scadenza traffico: Non scade mai
Sì, all'interno di una sessione sticky: fino a 30 minuti (l'IP può cambiare prima, ad esempio se il dispositivo domestico va offline). Aggiungi -session-<id>-ttl-<minutes> alla fine dello username e riutilizza lo stesso id in ogni strumento. Registra l'IP di uscita all'inizio e alla fine. Se è cambiato, segnalalo nel ticket, perché un nuovo IP potrebbe essere su un prefisso diverso.
Spesso sì. Punta ad AS21928 per T-Mobile Home Internet o ad AS22394 per Verizon 5G Home. Le uscite su quelle reti di solito condividono indirizzi con altri utenti, come la linea del cliente. Broadband Proxies non può distinguere se una data uscita è un gateway domestico o un telefono, quindi annota l'ASN anziché il tipo di dispositivo.
Non come mostrato qui. L'esempio controlla l'uscita con api.ipify.org, che risponde solo su IPv4. Se il problema del cliente si verifica solo su IPv6, il test proxy ti dice se il percorso IPv4 è a posto. Conferma il lato IPv6 da una connessione IPv6 nativa.
Il nome dell'ISP, la città o lo ZIP, l'ora del problema, il browser e l'errore esatto. L'ASN è il dato più utile: una pagina di lookup lo mostra senza alcun login. Non chiedere mai password, accesso al router o controllo remoto del dispositivo del cliente. Non sono necessari per testare il lato rete.
Sì. Crea un sotto-utente per ogni tester o progetto. Ogni sotto-utente ha le proprie credenziali, il proprio limite di traffico e i propri totali di utilizzo. Puoi anche consentire fino a 10 IP invece di una password, il che è adatto ai runner CI con indirizzi fissi. Il traffico proviene dall'unico piano che hai acquistato.
La disponibilità per ASN varia in base a rete, città e ora del giorno; il checkout mostra cosa è online e non viene pubblicato il numero di IP per ISP. Rimuovi prima lo ZIP, poi la città, e mantieni l'ASN con lo stato. Un provider più piccolo potrebbe essere online solo in alcune ore, quindi riprova all'ora del giorno in cui il cliente ha segnalato il problema. Annota nel ticket quale livello di targeting hai usato.
1 GB 2,63 USD · ASN incluso · senza KYC
Inizia ora