Test
1 GB
US$ 2,63
US$ 2,63/GB
- Controleer eerst één ISP in één stad
- Targeting op ASN, staat, stad en ZIP
- HTTP, HTTPS, SOCKS5
Use case · QA en support
Sommige tickets slaan alleen ergens op binnen één netwerk. Het faalt op fixed wireless, de verkeerde stad verschijnt, of een afbeelding is verouderd bij één kabelprovider. Een thuis-IP op dat netwerk maakt van het ticket een test die je kunt herhalen.
Snel antwoord
Hoe reproduceer ik een bug die alleen optreedt bij één internetprovider?
Een netwerkbug reproduceren betekent de fout van een klant herhalen vanaf hetzelfde soort verbinding: dezelfde provider, dezelfde stad, idealiter hetzelfde uur. Broadband Proxies geeft QA- en supportteams Amerikaanse thuis-IP's op basis van ASN en stad. Sticky sessions duren tot 30 minuten (het IP kan eerder wisselen, bijvoorbeeld als het thuisapparaat offline gaat). Een 1 GB-plan kost US$ 2,63; er is geen KYC en betalen gaat in crypto.
| Typische tickets | Mislukt alleen op fixed wireless, verkeerde stad of staat gedetecteerd, verouderde content op één netwerk, geblokkeerd als verdacht |
|---|---|
| Targeting | ASN plus staat, stad of ZIP, bijv. USERNAME-country-us-state-az-city-phoenix-asn-22773 (Cox-netwerk in Phoenix) |
| Sticky sessies | tot 30 minuten (het IP kan eerder wisselen, bijvoorbeeld als het thuisapparaat offline gaat) |
| Protocollen | HTTP, HTTPS (CONNECT) en SOCKS5 |
| Wat je moet loggen | Gevraagde targeting, exit-IP, origin-ASN, UTC-tijdvenster, sessie-id |
| Wat het niet kan nabootsen | De router, Wi-Fi, het apparaat en de lokale DNS-instellingen van de klant |
| Prijs | US$ 2,63 voor 1 GB, US$ 5,94 voor 10 GB, sub-gebruikers per project |
Een residentiële exit geeft je service het publieke IP van het klantnetwerk. Elke logica die op dat IP is gebaseerd, gedraagt zich zoals bij de klant. Vier soorten tickets komen vaak voor.
Een proxy kopieert het publieke IP en het netwerk, niet de hele verbinding. De router, Wi-Fi, browserextensies en het apparaat van de klant blijven buiten bereik. Vraag om een browserversie en een screenshot om die af te dekken.
DNS is een andere beperking. Via een proxy kunnen namen worden geresolved door het proxynetwerk in plaats van door de resolver van de ISP, dus bugs die alleen met DNS te maken hebben, vragen een andere methode.
IPv6 vraagt ook zorg. De check hieronder gebruikt api.ipify.org, dat alleen via IPv4 antwoordt. Als een bug alleen via IPv6 verschijnt, kan een proxytest het IPv4-pad in of uit sluiten. Je hebt nog steeds een native IPv6-lijn nodig om de rest te bevestigen.
Verzamel de netwerkfeiten
Vraag naar de ISP-naam, de stad of ZIP, het tijdstip van de fout en de fouttekst. Een lookup zoals onze exit-IP-gids geeft de ASN zonder wachtwoorden of routertoegang te delen.
Bouw een sticky gebruikersnaam
Voor een Cox-klant in Phoenix: USERNAME-country-us-state-az-city-phoenix-asn-22773-session-bug4521-ttl-30.
Bevestig en log de exit
Voer het onderstaande script uit. Het registreert het exit-IP, de origin-ASN en de prefix en houdt daarna een IP-wijziging in de gaten.
Reproduceer binnen de sessie
Gebruik dezelfde gebruikersnaam in de browser of test runner. Rond af binnen het sessievenster en noteer elke IP-wijziging.
Draai een controlenetwerk
Herhaal de stappen op een andere ASN in dezelfde stad. Als de bug verdwijnt, maakt het netwerk deel uit van de oorzaak.
# 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))| Veld | Voorbeeld | Waarom het ertoe doet |
|---|---|---|
| Gevraagde targeting | country-us-state-az-city-phoenix-asn-22773 | Een collega kan dezelfde test later uitvoeren |
| Exit-IP | 203.0.113.24 (documentatierange) | Zoek ernaar in je server- en CDN-logs |
| Origin-ASN en prefix | AS22773, uit RIPEstat | Bewijst het netwerk, niet alleen het verzoek |
| UTC-tijdvenster | 2026-10-18 14:05 tot 14:30 UTC | Komt overeen met logregels over tijdzones heen |
| Sessie-id en TTL | bug4521, 30 minuten | Toont of het IP gelijk bleef |
| Resultaat | HTTP 403 op /checkout/ | De bug, gereproduceerd of niet |
| Controle | Zelfde stad op AS209: geen fout | Scheidt netwerkoorzaken van codeoorzaken |
Test je eigen site, app of API, of een systeem waarvan de eigenaar je dat heeft gevraagd. Een ticket reproduceren kost meestal een handvol requests, geen crawl. Ons Acceptable Use Policy verbiedt floods en scans van systemen zonder toestemming van de eigenaar.
Houd klantgegevens buiten usernames en session id's. Gebruik een ticketnummer zoals bug4521, nooit een e-mailadres of een naam. Sites van banken, overheden en betaalportalen zijn op elk plan geblokkeerd, dus pagina's van betaalproviders kunnen niet via de gateway worden getest.
Een enkele reproductie is vaak een paar paginaladingen plus de checks in het script. 1 GB (US$ 2,63) dekt een proef op één ISP en stad. 10 GB (US$ 5,94) past bij een QA-team met één sub-user per tester. Verkeer verloopt nooit.
1 GB
US$ 2,63
US$ 2,63/GB
5 GB
US$ 3,75
US$ 0,75/GB
10 GB
US$ 5,94
US$ 0,59/GB
In elk abonnement: Protocollen: HTTP, HTTPS, SOCKS5 · Targeting: ASN (ISP), staat, stad en ZIP in de VS; land elders; beschikbaarheid per stad verschilt · Sessies: Roterend of sticky (tot 30 minuten) · Authenticatie: Gebruikersnaam en wachtwoord, of een IP-allowlist (tot 10 IP's) · Verkeersverval: Verloopt nooit
Ja, binnen een sticky session: tot 30 minuten (het IP kan eerder wisselen, bijvoorbeeld als het thuisapparaat offline gaat). Zet -session-<id>-ttl-<minutes> aan het einde van de username en hergebruik hetzelfde id in elke tool. Log het exit-IP aan het begin en het einde. Is het veranderd, vermeld dat dan in het ticket, want een nieuw IP kan op een andere prefix zitten.
Vaak wel. Richt je op AS21928 voor T-Mobile Home Internet of AS22394 voor Verizon 5G Home. Exits op die netwerken delen meestal adressen met andere gebruikers, net als de lijn van de klant. Broadband Proxies kan niet zien of een gegeven exit een home gateway of een telefoon is, dus noteer de ASN in plaats van het apparaattype.
Niet zoals hier getoond. Het voorbeeld controleert de exit met api.ipify.org, dat alleen via IPv4 antwoordt. Als de storing van de klant alleen via IPv6 optreedt, vertelt de proxytest je of het IPv4-pad in orde is. Bevestig de IPv6-kant vanaf een native IPv6-verbinding.
De ISP-naam, de stad of ZIP, het tijdstip van de storing, de browser en de exacte foutmelding. De ASN helpt het meest: een lookup-pagina toont die zonder login. Vraag nooit om wachtwoorden, routertoegang of remote control van het apparaat van de klant. Dat is niet nodig om de netwerkkant te testen.
Ja. Maak een sub-user aan voor elke tester of elk project. Elke sub-user heeft eigen inloggegevens, een eigen verkeerslimiet en eigen gebruikscijfers. Je kunt ook tot 10 IP's toestaan in plaats van een wachtwoord, wat past bij CI runners met vaste adressen. Verkeer komt uit het ene plan dat je hebt gekocht.
ASN-beschikbaarheid varieert per netwerk, stad en tijdstip van de dag; bij het afrekenen zie je wat online is, en er wordt geen aantal IP's per ISP gepubliceerd. Laat eerst de ZIP vallen, dan de stad, en houd de ASN met de staat. Een kleinere provider is mogelijk alleen op bepaalde uren online, dus probeer het opnieuw op het tijdstip waarop de klant het meldde. Noteer in het ticket welk targeting-niveau je hebt gebruikt.
1 GB US$ 2,63 · ASN inbegrepen · geen KYC
Aan de slag