Os provedores de proxy anunciam o tamanho do pool: milhões de IPs, centenas de milhões. O tamanho do pool importa, mas ele esconde uma segunda questão que importa tanto quanto para a confiabilidade: de quantas redes diferentes esses endereços vêm. Um pool de dez milhões de IPs concentrado em um punhado de redes se comporta de forma muito diferente de um distribuído por milhares.
Diversidade de ASN é o quanto os endereços de um pool de proxy estão espalhados por diferentes redes. Todo endereço IP pertence a uma rede administrada por uma organização e identificada por um número de sistema autônomo (ASN). Um pool diverso extrai suas saídas de muitas redes, sem que nenhuma delas carregue uma fatia desproporcional; um pool concentrado fica majoritariamente em poucas.
Para proxies residenciais, o ASN geralmente é um provedor de internet de consumo. Este artigo explica por que a distribuição de um pool entre ASNs importa, como medi-la a partir de uma amostra de saídas com um script Python gratuito, e como interpretar os números, usando dados reais do nosso próprio benchmark.
Por que a diversidade de ASN importa para a confiabilidade de proxies
Sites e sistemas anti-bot raramente julgam um endereço IP isoladamente. Eles o julgam em contexto, e a rede é uma das peças de contexto mais fortes que têm.
- Bloqueios se espalham por rede. Quando um site percebe abuso vindo de muitos endereços em uma rede, ele pode aplicar limitação de taxa ou desafiar a rede inteira. Um pool concentrado em poucos ASNs fica exposto a isso: uma decisão no nível da rede afeta uma grande parte do seu tráfego.
- A reputação é compartilhada. Endereços na mesma rede herdam parte da reputação dela. Um pool diverso é menos afetado quando a reputação de uma rede cai.
- Redes de hospedagem entregam o jogo. Um pool “residencial” com uma parcela significativa de endereços em redes de hospedagem ou datacenter não é totalmente residencial, e os sites tratam esses endereços de acordo.
- O realismo local exige redes locais. Se você coleta dados como são vistos a partir de um país ou cidade, as saídas devem estar distribuídas entre os provedores que as pessoas de lá realmente usam.
É também por isso que mirar em uma rede específica é útil para alguns trabalhos. Nosso guia sobre segmentação por ASN para proxies residenciais cobre quando fixar requisições em um único provedor, que é o caso oposto: concentração deliberada para um teste específico.
Como deve ser um pool residencial diverso
Mercados reais de internet são concentrados. Na maioria dos países, alguns grandes provedores atendem a maioria dos domicílios, com uma longa cauda de redes regionais e móveis menores atrás deles. Um pool residencial saudável reflete esse formato: alguns grandes ISPs de consumo carregando uma boa parcela das saídas, e muitas redes menores atrás deles.
Então o objetivo não é ter parcelas perfeitamente iguais entre redes. São duas coisas:
- Nenhuma rede única domina além do que o mercado de internet daquele país explicaria.
- Existe uma longa cauda: muitas redes distintas, de modo que um bloqueio em qualquer uma delas afete apenas uma pequena parcela do tráfego.
Como medir a diversidade de ASN em um pool de proxy
Você não consegue ver o pool inteiro de um provedor, mas pode amostrá-lo. Envie requisições através do gateway rotativo, registre de qual IP e rede cada requisição sai, e calcule métricas de concentração sobre a amostra.
Quatro métricas cobrem a maior parte do que importa:
| Métrica | O que mede | Como interpretar |
|---|---|---|
| ASNs distintos | Quantas redes aparecem na amostra | Mais alto é melhor; cresce com o tamanho da amostra |
| Parcela top-1 e top-5 | A parcela de saídas na maior rede e nas cinco maiores | Mais baixo significa menos exposição à decisão de uma única rede |
| Índice Herfindahl-Hirschman (HHI) | A soma dos quadrados das parcelas, de próximo de 0 (disperso) a 1 (uma única rede) | A medida padrão de concentração de mercado |
| Número efetivo de ASNs | 1 / HHI: a quantos redes de tamanho igual a amostra se comporta de forma equivalente | O número único mais intuitivo |
Adicione mais uma verificação que não é sobre concentração: a parcela de saídas em redes não residenciais. Para um pool residencial, isso deve estar próximo de zero.
Salve o módulo abaixo como asn_diversity.py. Ele amostra saídas através de um proxy usando o ip-info.com, nossa API gratuita de geolocalização de IP, que retorna o ASN, o nome da rede e se é uma rede residencial ou de hospedagem de cada endereço, e calcula as métricas:
# asn_diversity.py
from collections import Counter
import requests
def sample_exit(proxy_url, get=requests.get):
"""One exit through a rotating proxy: its IP, network (ASN) and network type."""
info = get("http://ip-info.com/json", proxies={"http": proxy_url, "https": proxy_url}, timeout=20).json()
return {"ip": info["ip"], "asn": info["asn"], "as_name": info["as_name"], "user_type": info.get("user_type")}
def diversity(exits):
"""How spread out a sample of exits is across networks."""
exits = list({e["ip"]: e for e in exits}.values()) # count each IP once
counts = Counter(e["asn"] for e in exits)
n = len(exits)
shares = sorted((c / n for c in counts.values()), reverse=True)
hhi = sum(s * s for s in shares) # Herfindahl-Hirschman index, 0 to 1
return {
"unique_ips": n,
"asns": len(counts),
"top1_share": round(shares[0], 3),
"top5_share": round(sum(shares[:5]), 3),
"hhi": round(hhi, 4),
"effective_asns": round(1 / hhi, 1), # as many equal-sized networks as this
"non_residential_share": round(sum(e["user_type"] != "residential" for e in exits) / n, 3),
}
Duas amostras ilustrativas de 1.000 saídas mostram como um pool amplo e um estreito se leem de forma diferente (dados sintéticos, não provedores reais):
import random
from asn_diversity import diversity
random.seed(7)
# Illustrative samples of 1,000 exits from two pools (synthetic, not real providers)
broad = [{"ip": f"ip{i}", "asn": random.choice(range(60)), "user_type": "residential"} for i in range(1000)]
narrow = [{"ip": f"ip{i}", "asn": random.choice([1, 1, 1, 1, 2, 2, 3, 4]), "user_type": "residential"}
for i in range(1000)]
print("broad ", diversity(broad))
print("narrow", diversity(narrow))
broad {'unique_ips': 1000, 'asns': 60, 'top1_share': 0.028, 'top5_share': 0.125, 'hhi': 0.0176, 'effective_asns': 57.0, 'non_residential_share': 0.0}
narrow {'unique_ips': 1000, 'asns': 4, 'top1_share': 0.506, 'top5_share': 1.0, 'hhi': 0.3466, 'effective_asns': 2.9, 'non_residential_share': 0.0}
O pool amplo se comporta como 57 redes de tamanho igual, e sua maior rede carrega menos de 3% das saídas. O pool estreito se comporta como menos de três: metade de todas as saídas está em uma única rede, e todas as saídas estão em uma de quatro redes. No pool estreito, um único bloqueio no nível de rede sobre o maior ASN interromperia metade das suas requisições.
Coletando 1.000 saídas reais através de um gateway
Para medir um pool real, aponte sample_exit para um gateway rotativo e colete a amostra em paralelo. Com o Shifter, o país vai no nome de usuário e toda requisição sem um ID de sessão recebe uma saída nova:
from concurrent.futures import ThreadPoolExecutor
from asn_diversity import diversity, sample_exit
PROXY = "http://customer-USERNAME-country-gb:PASSWORD@p.shifter.io:443"
def safe_sample(_):
try:
return sample_exit(PROXY)
except Exception:
return None # skip the odd timeout
with ThreadPoolExecutor(max_workers=20) as pool:
exits = [e for e in pool.map(safe_sample, range(1000)) if e]
print(diversity(exits))
Execute o mesmo script, com o mesmo tamanho de amostra e no mesmo horário, para cada provedor que você comparar.
Diversidade de sub-rede (/24)
ASNs não são o único agrupamento que importa. Os sites também bloqueiam blocos de endereços inteiros, mais frequentemente a sub-rede /24 (os três primeiros números de um endereço IPv4). Duas saídas na mesma /24 geralmente compartilham um prédio, uma rua ou um NAT de operadora, então um bloqueio em uma costuma pegar a outra também. Duas linhas adicionadas à mesma amostra as contam:
subnets = Counter(".".join(e["ip"].split(".")[:3]) for e in exits)
print("distinct /24 subnets:", len(subnets), "largest subnet share:", round(max(subnets.values()) / len(exits), 3))
Uma amostra residencial saudável tem quase tantas sub-redes /24 distintas quanto IPs distintos.
Como obter uma amostra justa de ASN
Algumas precauções mantêm a medição honesta:
- Amostre por país. Diversidade só significa algo dentro de um mercado. Misturar países infla a contagem de ASNs sem dizer nada sobre nenhum deles em particular.
- Use requisições suficientes. O número de ASNs distintos continua crescendo com o tamanho da amostra, então compare pools no mesmo tamanho de amostra. Mil saídas por país é um começo razoável; as parcelas e o HHI se estabilizam mais rápido do que a contagem.
- Conte cada IP uma vez. Pools rotativos podem retornar o mesmo endereço mais de uma vez. O módulo acima remove duplicatas por IP.
- Distribua a amostra ao longo do tempo. Pools residenciais mudam ao longo do dia conforme dispositivos entram e saem. Amostrar ao longo de várias horas dá um retrato mais fiel do que uma única rajada.
- Use a mesma fonte de consulta para cada pool. Bancos de dados de geolocalização diferentes podem atribuir um endereço a redes ligeiramente diferentes.
O que nosso benchmark encontrou
Contamos ASNs distintos em cada execução do nosso benchmark de proxy residencial: Shifter e outras 16 redes, cada uma recebendo o mesmo número de requisições por país a partir do mesmo servidor. Essas amostras são muito maiores que 1.000 saídas (250.000 requisições nos Estados Unidos, de 60.000 a 100.000 em outros lugares), então as contagens são muito mais altas do que um teste pequeno mostraria, mas são comparáveis entre provedores.
Nos Estados Unidos, os cinco pools mais amplos foram:
| Rede | ASNs distintos nos EUA | IPs ativos nos EUA |
|---|---|---|
| Shifter | 1.828 | 212.212 |
| Oxylabs | 1.591 | 140.811 |
| Decodo | 1.578 | 138.914 |
| Webshare | 1.518 | 150.512 |
| FleetProxy | 1.482 | 112.402 |
Nos cinco países que testamos, o Shifter comparado ao Webshare, o concorrente mais forte em tamanho de pool, ficou assim:
| País | ASNs Shifter | ASNs Webshare |
|---|---|---|
| Estados Unidos | 1.828 | 1.518 |
| Reino Unido | 166 | 209 |
| França | 147 | 96 |
| Canadá | 308 | 245 |
| Alemanha | 272 | 188 |
O Reino Unido é o único mercado em que o Webshare se espalhou mais: 209 redes contra 166, uma diferença de 43. Na mesma execução, o Shifter retornou mais endereços ativos no Reino Unido, 60.487 contra 51.564, e o pool que testamos custa a partir de $0,75 por GB contra a tarifa mínima publicada pelo Webshare de $1,40, pouco mais da metade do preço. Os números medidos do Shifter na Alemanha foram o inverso do Reino Unido: menos IPs ativos que o Webshare, mas 272 redes contra 188.
Usando dados de ASN no dia a dia
Depois que você consegue medir a distribuição de ASN, os mesmos dados ajudam no trabalho diário, não apenas na escolha de fornecedor:
- Leia as falhas por rede. Quando as taxas de bloqueio sobem, agrupe as requisições que falharam pelo ASN de sua saída. Se as falhas se concentram em uma ou duas redes, o alvo está agindo contra essas redes, e distribuir ou excluí-las resolve mais do que simplesmente tentar de novo.
- Verifique um pool antes de um grande trabalho. Uma amostra rápida de 1.000 saídas no país alvo diz se o pool ali é amplo o suficiente para o volume que você planeja enviar.
- Fixe uma rede apenas quando o trabalho exigir. Alguns testes, como verificar o que os clientes de um provedor veem, pedem concentração de propósito. A segmentação por ASN faz isso; o guia linkado acima cobre quando vale a pena.
- Registre o ASN junto com cada resultado. Quando um número em um conjunto de dados parece errado, saber de qual rede ele foi observado costuma ser a explicação.
Proxies ISP e distribuição de rede
O mesmo raciocínio se aplica a IPs que você mantém por mais tempo. Se você compra proxies ISP para sessões longas, distribuí-los entre vários provedores e cidades evita colocar toda identidade em uma única rede. Nosso guia sobre como comprar proxies ISP sem desperdiçar dinheiro inclui um script para verificar um lote de IPs de teste, e nossos proxies ISP permitem escolher a cidade e o ISP (ASN) de cada IP, em mais de 900 ISPs em mais de 1.800 cidades. A forma como um provedor obtém seus endereços também molda a diversidade; nossa explicação sobre como os provedores obtêm IPs residenciais de forma ética cobre o que perguntar.
Perguntas frequentes
O que é diversidade de ASN em uma rede de proxy?
O quanto os endereços IP de um pool de proxy estão espalhados por diferentes redes (sistemas autônomos). Um pool diverso tem muitas redes sem que nenhuma domine; um pool concentrado tem a maioria dos endereços em poucas.
Por que a diversidade de ASN importa para scraping?
Os sites frequentemente agem contra redes inteiras, não contra endereços individuais. Se a maioria das suas saídas compartilha uma rede, um único bloqueio no nível da rede pode afetar uma grande parcela das suas requisições.
Como meço a diversidade de ASN?
Envie uma amostra de requisições através do proxy, registre o ASN de cada saída, e calcule a parcela das maiores redes, o índice Herfindahl-Hirschman e o número efetivo de redes. Amostre por país, ao longo do tempo, e no mesmo tamanho para cada pool que você comparar.
Um pool de proxy maior é sempre mais diverso?
Não. Um pool grande ainda pode estar concentrado em poucas redes. Tamanho do pool e diversidade de rede são medições separadas.
Qual é um bom número efetivo de ASNs?
Não existe um alvo único, porque depende de quão concentrado é o mercado de internet do país. Compare provedores no mesmo país com o mesmo tamanho de amostra: o pool com o número efetivo de ASNs mais alto e a menor parcela na maior rede é o mais resiliente.
Quantas saídas devo amostrar?
Mil saídas únicas por país é um começo razoável. As parcelas, o HHI e o número efetivo de ASNs se estabilizam rapidamente; a contagem bruta de ASNs distintos continua crescendo com o tamanho da amostra, então só compare contagens obtidas com o mesmo tamanho.
O que é diversidade de sub-rede, e em que difere da diversidade de ASN?
Diversidade de sub-rede conta quantos blocos de endereços /24 distintos uma amostra cobre. Diversidade de ASN é sobre redes; diversidade de sub-rede é sobre bairros dentro de uma rede. Os sites bloqueiam nos dois níveis, então um bom pool é amplo em ambos.
Qual provedor teve a maior distribuição de ASN no seu benchmark?
Nos Estados Unidos, o Shifter alcançou 1.828 redes distintas, a mais alta entre as 17 redes que medimos, com o Oxylabs em seguida com 1.591. O Shifter também alcançou o maior número de redes na França e no Canadá, e empatou com o Rayobyte com o maior número na Alemanha; no Reino Unido o Webshare alcançou mais, 209 contra 166.
Conclusão
As contagens de IP medem o tamanho de um pool; a diversidade de ASN mede sua resiliência. Amostre saídas por país, conte cada IP uma vez, e observe o número efetivo de redes, a parcela da maior rede, a distribuição de sub-redes e a parcela de saídas não residenciais. Um pool residencial saudável reflete o mercado de internet local: alguns grandes ISPs de consumo e uma longa cauda atrás deles, sem que nenhuma rede carregue uma parcela desproporcional do seu tráfego.