Teste
1 GB
US$ 2,63
US$ 2,63/GB
- Verifique primeiro um ISP em uma cidade
- Segmentação por ASN, estado, cidade e CEP
- HTTP, HTTPS, SOCKS5
Caso de uso · QA e suporte
Alguns tickets só fazem sentido em uma rede. Falha em acesso fixo sem fio, a cidade errada aparece, ou uma imagem está desatualizada em um provedor de cabo. Um IP residencial naquela rede transforma o ticket em um teste que você pode repetir.
Resposta rápida
Como reproduzo um bug que só acontece em um provedor de internet?
Reproduzir um bug de rede significa repetir a falha de um cliente a partir do mesmo tipo de conexão: mesmo provedor, mesma cidade e, de preferência, no mesmo horário. Broadband Proxies fornece às equipes de QA e suporte IPs residenciais dos EUA por ASN e cidade. As sessões sticky duram até 30 minutos (o IP pode mudar antes, por exemplo se o dispositivo doméstico ficar offline). Um plano de 1 GB custa a partir de US$ 2,63; não há KYC e o pagamento é em cripto.
| Tickets típicos | Falha apenas em fixed wireless, cidade ou estado detectado errado, conteúdo desatualizado em uma rede, bloqueado como suspeito |
|---|---|
| Segmentação | ASN mais estado, cidade ou CEP, por exemplo USERNAME-country-us-state-az-city-phoenix-asn-22773 (rede Cox em Phoenix) |
| Sessões sticky | até 30 minutos (o IP pode mudar antes, por exemplo se o dispositivo doméstico ficar offline) |
| Protocolos | HTTP, HTTPS (CONNECT) e SOCKS5 |
| O que registrar | Segmentação solicitada, IP de saída, ASN de origem, janela de tempo em UTC, id da sessão |
| O que ela não consegue copiar | O roteador, o Wi-Fi, o dispositivo e as configurações de DNS local do cliente |
| Preço | US$ 2,63 por 1 GB, US$ 5,94 por 10 GB, subusuários por projeto |
Uma saída residencial dá ao seu serviço o IP público da rede do cliente. Qualquer lógica baseada nesse IP vai se comportar como se comporta para o cliente. Quatro tipos de ticket aparecem com frequência.
Um proxy copia o IP público e sua rede, não a conexão inteira. O roteador, o Wi-Fi, as extensões de navegador e o dispositivo do cliente ficam fora de alcance. Peça a versão do navegador e uma captura de tela para cobrir esses pontos.
O DNS é outro limite. Por meio de um proxy, os nomes podem ser resolvidos pela rede do proxy em vez de pelo resolvedor do ISP, então bugs exclusivos de DNS precisam de outro método.
IPv6 também exige cuidado. A verificação abaixo usa api.ipify.org, que responde apenas via IPv4. Se um bug aparece só via IPv6, um teste com proxy pode confirmar ou descartar o caminho IPv4. Você ainda precisa de uma linha IPv6 nativa para confirmar o resto.
Reúna os dados da rede
Peça o nome do ISP, a cidade ou CEP, o horário da falha e o texto do erro. Uma consulta como o nosso guia de IP de saída fornece o ASN sem compartilhar senhas ou acesso ao roteador.
Crie um username sticky
Para um cliente Cox em Phoenix: USERNAME-country-us-state-az-city-phoenix-asn-22773-session-bug4521-ttl-30.
Confirme e registre a saída
Execute o script abaixo. Ele registra o IP de saída, o ASN de origem e o prefixo, depois monitora mudanças de IP.
Reproduza dentro da sessão
Use o mesmo nome de usuário no navegador ou no executor de testes. Termine dentro da janela da sessão e anote qualquer mudança de IP.
Execute uma rede de controle
Repita os passos em outro ASN na mesma cidade. Se o bug desaparecer, a rede faz parte da 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 | Exemplo | Por que importa |
|---|---|---|
| Segmentação solicitada | country-us-state-az-city-phoenix-asn-22773 | Um colega pode executar o mesmo teste depois |
| IP de saída | 203.0.113.24 (faixa de documentação) | Pesquise nos logs do seu servidor e da CDN por ele |
| ASN de origem e prefixo | AS22773, do RIPEstat | Comprova a rede, não só a requisição |
| Janela de tempo em UTC | 2026-10-18 14:05 a 14:30 UTC | Corresponde a linhas de log em diferentes fusos horários |
| Id da sessão e TTL | bug4521, 30 minutos | Mostra se o IP permaneceu o mesmo |
| Resultado | HTTP 403 em /checkout/ | O bug, reproduzido ou não |
| Controle | Mesma cidade no AS209: sem erro | Separa causas de rede de causas de código |
Teste seu próprio site, app ou API, ou um sistema cujo proprietário tenha pedido que você o faça. Reproduzir um ticket deve levar algumas requisições, não um crawl. Nossa Política de Uso Aceitável proíbe floods e varreduras de sistemas sem a permissão do proprietário.
Mantenha dados de clientes fora de usernames e session ids. Use um número de ticket como bug4521, nunca um email ou um nome. Sites de bancos, órgãos governamentais e portais de pagamento são bloqueados em todos os planos, então páginas de provedores de pagamento não podem ser testadas pelo gateway.
Uma única reprodução costuma ser algumas cargas de página mais as verificações do script. 1 GB (US$ 2,63) cobre um teste em um ISP e cidade. 10 GB (US$ 5,94) atende uma equipe de QA com um sub-usuário por testador. O tráfego nunca expira.
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
Em todos os planos: Protocolos: HTTP, HTTPS, SOCKS5 · Segmentação: ASN (ISP), estado, cidade e CEP nos EUA; país em outros lugares; a disponibilidade de cidades varia · Sessões: Rotativo ou fixo (até 30 minutos) · Autenticação: Nome de usuário e senha, ou uma lista de IPs permitidos (até 10 IPs) · Expiração do tráfego: Nunca expira
Sim, dentro de uma sessão sticky: até 30 minutos (o IP pode mudar antes, por exemplo se o dispositivo doméstico ficar offline). Coloque -session-<id>-ttl-<minutes> no final do username e reutilize o mesmo id em todas as ferramentas. Registre o IP de saída no início e no fim. Se ele mudou, informe no ticket, porque um novo IP pode estar em um prefixo diferente.
Muitas vezes, sim. Mire no AS21928 para T-Mobile Home Internet ou no AS22394 para Verizon 5G Home. As saídas nessas redes geralmente compartilham endereços com outros usuários, como a linha do cliente faz. Broadband Proxies não consegue dizer se uma determinada saída é um gateway residencial ou um celular, então anote o ASN em vez do tipo de dispositivo.
Não como mostrado aqui. O exemplo verifica a saída com api.ipify.org, que responde apenas por IPv4. Se a falha do cliente acontece só por IPv6, o teste de proxy informa se o caminho IPv4 está ok. Confirme o lado IPv6 a partir de uma conexão IPv6 nativa.
O nome do ISP, a cidade ou o CEP, o horário da falha, o navegador e o erro exato. O ASN ajuda mais: uma página de lookup mostra isso sem nenhum login. Nunca peça senhas, acesso ao roteador ou controle remoto do dispositivo do cliente. Isso não é necessário para testar o lado da rede.
Sim. Crie um sub-usuário para cada testador ou projeto. Cada sub-usuário tem suas próprias credenciais, limite de tráfego e totais de uso. Você também pode liberar até 10 IPs em vez de uma senha, o que atende CI runners com endereços fixos. O tráfego vem do plano único que você comprou.
A disponibilidade de ASN varia por rede, cidade e horário; o checkout mostra o que está online, e nenhuma quantidade de IPs por ISP é publicada. Remova o CEP primeiro, depois a cidade, e mantenha o ASN com o estado. Um provedor menor pode ficar online apenas em alguns horários, então tente novamente no horário em que o cliente relatou o problema. Anote no ticket qual nível de segmentação você usou.
1 GB US$ 2,63 · ASN incluído · sem KYC
Começar