Como gerar IPs aleatórios para web scraping

Descubra como criar um gerador de IP aleatório baseado em Python e por que os proxies são a solução definitiva para atividades on-line seguras e anônimas.
11 min read
How to generate random IP address blog image

Neste guia, você vai aprender:

  • A definição de um endereço IP e seus usos
  • Se é possível gerar endereços IP aleatórios de forma programática
  • Como construir um gerador de IP aleatório
  • Como usar endereços IP aleatórios para ocultar sua identidade

Vamos lá!

O que é um endereço IP?

Um endereço IP é uma sequência de números atribuída exclusivamente a dispositivos conectados a uma rede de computadores que se comunicam pelo Protocolo de Internet. Você pode pensar nisso como um endereço digital que ajuda a identificar um dispositivo na Internet ou em uma rede local.

Resumindo, os endereços IP são essenciais para identificação de dispositivos, roteamento de dados e até serviços de geolocalização. No momento em que este artigo foi escrito, a versão mais usada atualmente é IPv4. Um endereço IPv4 consiste em quatro grupos de números (chamados octetos) separados por pontos, da seguinte forma:

192.168.1.1

Cada octeto é um número que pode variar de 0 a 255, permitindo um espaço de 4,3 bilhões de endereços únicos possíveis.

Um padrão mais novo, o IPv6, utiliza um formato diferente e fornece um conjunto muito maior de endereços. No entanto, este artigo se concentra no IPv4. Você pode explorar mais em nosso guia IPv4 versus IPv6.

A maneira mais fácil de descobrir seu endereço IP público é visitar um site como “Qual é meu endereço IP.” Como alternativa, no Windows, você pode encontrar seu IP executando o seguinte comando no terminal:

ipconfig

Ótimo! Agora, é hora de descobrir se você pode criar um gerador de IP aleatório.

É possível criar um gerador de endereços IP aleatórios?

TL; DR: Sim, criar um gerador aleatório de endereços IP é totalmente possível!

Conforme mencionado anteriormente, os endereços IP seguem uma estrutura bem definida com números dentro de intervalos específicos. Isso torna a geração de IPs aleatórios válidos não apenas possível, mas também relativamente fácil.
Por outro lado, você precisa entender como os IPs são atribuídos e reservados para evitar a geração de endereços que são apenas conjuntos de números sem sentido.

Os endereços IP são gerenciados pela IANA (Internet Assigned Numbers Authority) e distribuídos pelos RIRs (Registros Regionais da Internet). A adesão aos padrões da IANA permite que você gere programaticamente formatos de endereço válidos.

Ao criar uma ferramenta geradora IPs aleatórios, você também precisa ignorar determinados intervalos de IP. Isso ocorre porque alguns IPs são reservados e não são usados para tráfego público na Internet.

Você pode encontrar intervalos IPv4 reservados na tabela a seguir:

Bloco de endereços Intervalo de endereços Descrição
0.0.0.0/8 0.0.0.0 — 0.255.255.255 Rede atual (local, “esta”)
10.0.0.0/8 10.0.0.0 — 10.255.255.255 Usado para comunicações locais em uma rede privada
100.64.0.0/10 100.64.0.0 — 100.127.255.255 Espaço de endereço compartilhado para comunicação entre provedores de serviços e assinantes com NAT de nível de operadora
127.0.0.0/8 127.0.0.0 — 127.255.255.255 Usado para endereços de loopback para o host local
169.254.0.0/16 169.254.0.0 — 169.254.255.255 Usado para endereços locais de link quando nenhum IP é especificado (por exemplo, falha de DHCP)
172.16.0.0/12 172.16.0.0 — 172.31.255.255 Usado para comunicações locais em uma rede privada
192.0.0.0/24 192.0.0.0 — 192.0.0.255 Atribuições de protocolo IETF, DS-Lite (/29)
192.0.2.0/24 192.0.2.0 — 192.0.2.255 Atribuído como TEST-NET-1, para documentação e exemplos
192.88.99.0/24 192.88.99.0 — 192.88.99.255 Reservado. Anteriormente usado para retransmissão IPv6 para IPv4
192.168.0.0/16 192.168.0.0 — 192.168.255.255 Usado para comunicações locais em uma rede privada
198.18.0.0/15 198.18.0.0 — 198.19.255.255 Usado para testes comparativos de comunicações entre redes entre sub-redes separadas
198.51.100.0/24 198.51.100.0 — 198.51.100.255 Atribuído como TEST-NET-2, para documentação e exemplos
203.0.113.0/24 203,0.113,0 — 203.0.113.255 Atribuído como TEST-NET-3, para documentação e exemplos
224.0.0.0/4 224.0.0.0 — 239.255.255.255 Em uso para multicast (antiga rede Classe D)
233.252.0.0/24 233.252.0.0 — 233.252.0.255 Atribuído como MCAST-TEST-NET, para documentação e exemplos (parte do espaço multicast)
240.0.0.0/4 240.0.0.0 — 255.255.255.254 Reservado para uso futuro (antiga rede Classe E)
255.255.255.255/32 255.255.255.255 Reservado para o endereço de destino de “transmissão limitada”

Veja como gerar um endereço IP aleatório usando um script Python simples!

Como gerar um IP aleatório em Python

Siga este tutorial passo a passo para aprender como criar uma função geradora de IP aleatória em Python!

Etapa #1: Definir uma função para gerar endereços IPv4

Endereços IPv4 nada mais são do que cadeias de caracteres que consistem em quatro octetos, cada um variando de 0 a 255. Para gerar esses números aleatórios no formato IP, você pode usar a seguinte lógica:

def generate_random_ipv4():
    return f"{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}"

randint() from random gera um número aleatório entre 0 e 255. Então, a função generate_random_ipv4 () retorna uma string no seguinte formato:

X.Y.Z.A 

Onde XYZA são números de 0 a 255.

Não se esqueça de importar o random da Biblioteca Padrão do Python:

import random

Etapa #2: Adicionar a lógica de filtro para IPs reservados

A biblioteca ipaddress da Biblioteca Padrão do Python fornece uma classe IPv4Address . Isso expõe um atributo is_reserved para verificar se um endereço IP está reservado.

Primeiro, importe a biblioteca ipaddress :

import ipaddress

Em seguida, use-a para criar uma lógica que gere repetidamente endereços IP aleatórios até gerar um que não seja reservado:

while True:
    # Generate a random IP address
    ip = f"{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}"
    
    # Check if the generated IP is within the reserved blocks
    if not ipaddress.IPv4Address(ip).is_reserved:
        return ip

Excelente! Sua função Python do gerador aleatório de endereços IP está pronta.

Etapa 3: Teste a função

Esta é a aparência de sua função de geração aleatória de IP:

import random
import ipaddress


def generate_random_ipv4():
    while True:
        # Generate a random IP address
        ip = f"{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}"
        
        # Check if the generated IP is within the reserved blocks
        if not ipaddress.IPv4Address(ip).is_reserved:
            return ip

Chame a função geradora aleatória de IP e exiba o resultado:

ip = generate_random_ipv4()
print(ip)

O resultado será algo assim:

61.18.2.4

Incrível! Missão cumprida.

Extra: Crie um gerador aleatório IPv6

Assim como o gerador IPv4, veja como você pode criar um gerador IPv6:

import random
import ipaddress


def generate_random_ipv6():
    while True:
        # Generate a random IPv6 address
        ip = ":".join(f"{random.randint(0, 0xFFFF):04x}" for _ in range(8))
        
        # Check if the generated IP is within the reserved blocks
        if not ipaddress.IPv6Address(ip).is_reserved:
            return ip

Usando IPs aleatórios para proteger sua identidade

A verdadeira questão é: Por que você precisaria de um gerador de IP aleatório? Aqui estão algumas respostas possíveis:

  • Aprendizado: Use-o como uma ferramenta para entender como os endereços IP são estruturados e gerenciados.
  • Teste: Utilize-o em processos que exigem um endereço IP como entrada ou envolvem o uso de IPs para tarefas específicas, como validar configurações de rede, firewalls ou outros sistemas.

Agora, lembre-se de que um endereço IP é um identificador exclusivo. Não seria mágico se você pudesse gerar um IP aleatório e usá-lo para esconder sua identidade? Por exemplo, durante o web scraping, isso ajudaria:

  1. Evitar que o site de destino detecte solicitações automatizadas.
  2. Oferecer um pool praticamente infinito de IPs com os quais trabalhar, evitando medidas anti-scraping, como limitação de taxa.

Isso seria fantástico! No entanto, não é possível simplesmente criar um gerador de IP aleatório e usá-lo diretamente em sua máquina. Em vez disso, o que você pode fazer é encaminhar suas solicitações por meio de um pool de servidores proxy.

Esse mecanismo ajuda você a garantir que cada solicitação feita pela sua máquina pareça vir de um endereço IP diferente. Saiba mais em nosso tutorial sobre como rotacionar um endereço IP.

Usar proxies é o mais próximo que você pode chegar de aproveitar um gerador de IP aleatório para segurança e anonimato online. Muitos provedores de proxy residenciais de primeira linha oferecem grandes pools de IPs válidos, geralmente na casa dos milhões. Então, os proxies estão perto de ter acesso a IPs aleatórios.

Técnicas de rotação aleatória de IP

Agora que você entende os benefícios da rotação de IP em comparação com a simples geração de IP. Vamos explorar alguns métodos para usar IPs aleatórios!

VPNs

Uma VPN, abreviação de Rede Privada Virtual, oculta seu endereço IP roteando sua conexão por meio de servidores em locais diferentes. Isso lhe dá acesso a um conjunto aleatório de IPs em todo o mundo.

Ao contrário de um servidor proxy, uma VPN também cria um túnel seguro e criptografado entre seu dispositivo e a rede VPN. Para uma comparação mais profunda, confira nosso artigo VPN versus Proxy.

👍 Prós:

  • Acesso a muitos IPs de todo o mundo
  • Criptografa o tráfego para privacidade
  • Ideal para navegação geral

👎 Contras:

  • Difícil de integrar no nível do aplicativo
  • Pool de IP limitado em comparação com proxies
  • IPs detectáveis de datacenters

Proxies

Um proxy age como um intermediário entre o seu dispositivo e o servidor-alvo. Esse mecanismo permite que você use o endereço IP do servidor proxy em vez do seu próprio. Isso fornece acesso a um pool de IPs “aleatórios” para melhorar o anonimato e contornar restrições.

Ao contrário de uma VPN, os proxies são mais fáceis de integrar diretamente ao seu código, pois a maioria dos clientes HTTP suporta a configuração de proxy. Aqui está um exemplo de como usar implementando rotação de IP com proxies usando solicitações:

import requests  
import random  

# Pool of proxies
proxies = [  
    "<PROXY_URL_1>",  
    "<PROXY_URL_2>",  
    "<PROXY_URL_3>"  
]  

# Get a random proxy config
def get_random_proxy():  
    return {"http": random.choice(proxies), "https": random.choice(proxies)}  

# Example usage   
proxy = get_random_proxy()
response = requests.get("https://example.com", proxies=proxy)

Se você não tiver certeza de onde encontrar proxies rotativos, confira nosso guia sobre os melhores proxies rotativos do mercado.

👍 Prós:

  • Pools de IP grandes e confiáveis
  • Conexões de alta velocidade
  • Frequência de rotação personalizável

👎 Contras:

  • Requer configuração técnica

APIs de Web Scraping

Uma API de web scraping fornece todas as ferramentas necessárias para simplificar o processo de web scraping. Em vez de lidar com complexidades como gerenciar proxies, agentes de usuário, CAPTCHAs, medidas anti-bot e novas tentativas, basta chamar a API com seu URL de destino. Ela retorna o conteúdo HTML da página ou extrai automaticamente os dados em um formato JSON estruturado.

Descubra por que a API Scraper da Bright Data é uma das melhores soluções de web scraping, oferecendo gerenciamento avançado de anti-bots, rotação de IP, agendamento de dados e muito mais.

👍 Prós:

  • Solução de raspagem tudo-em-um
  • Acesso a um grande conjunto de IPs em seu aplicativo sem necessidade de configuração
  • Escalável para grandes projetos

👎 Contras:

  • Forçar você a confiar em um serviço de terceiros

Conclusão

Neste guia, você aprenderá o que é um endereço IP, que consiste em como criar um gerador de endereço IP aleatório em Python. Embora seja fácil gerar IPs aleatórios, eles não são particularmente úteis por si só. Você não pode simplesmente usá-los para substituir a identidade da sua máquina.

Isso pode ser feito por meio de um mecanismo diferente: servidores proxy. Um servidor proxy atua como intermediário, retransmitindo suas solicitações para os servidores de destino e gerenciando as respostas do alvo de volta para você. Dessa forma, o servidor de destino vê apenas o endereço IP do proxy, não o seu endereço real.

O desafio está em escolher um provedor de proxy confiável. Dezenas de provedores oferecem serviços semelhantes, mas nem todos são confiáveis ou eficazes. Você precisa de um provedor com servidores confiáveis, um grande conjunto de IPs e políticas de privacidade sólidas. Em vez de perder tempo testando todos eles, vá direto para a melhor opção do mercado, o Bright Data.

A Bright Data controla os melhores servidores de proxies do mundo, atendendo a empresas listadas na Fortune 500 e a mais de 20.000 clientes. Sua rede mundial de proxies envolve:

De modo geral, essa é uma das maiores e mais confiáveis redes de proxies voltadas para extração de dados do mercado.

Crie uma conta na Bright Data e teste esses serviços de extração com um teste gratuito!

Não é necessário cartão de crédito