quarta-feira, 27 de maio de 2026

Como Alterar o IP do Tor Automaticamente a Cada 10 Segundos com Python

Se você estuda segurança digital ou realiza automações como web scraping, já deve ter se deparado com bloqueios de IP. Uma técnica avançada para mitigar esse problema é forçar a rede Tor (The Onion Router) a rotacionar seus nós de saída de forma cíclica e automatizada.

1. O Conceito: Como o Tor funciona normalmente

O Tor direciona o tráfego de internet por meio de três servidores voluntários criptografados ao redor do mundo:

  • Nó de Entrada: Sabe quem você é, mas não o que você está acessando.
  • Nó do Meio: Passa os dados adiante de forma totalmente criptografada.
  • Nó de Saída: Leva você até o destino final. O site de destino enxerga apenas o IP deste nó, preservando a sua identidade.

Por padrão, o Tor mantém esse circuito ativo por alguns minutos antes de mudá-lo de forma transparente. No entanto, em testes de penetração e rotinas de coleta de dados, precisamos de uma frequência muito maior.

2. A Lógica da Automação

Para forçar a mudança imediata de IP, um script interage diretamente com o serviço do Tor instalado no sistema operacional utilizando a porta de controle (Tor ControlPort).

O fluxo lógico acontece em três etapas simples:

  1. O usuário define o intervalo de tempo desejado (por exemplo, 10 segundos).
  2. A cada ciclo concluído, o script envia um sinal de comando chamado NEWNYM para a porta de controle do Tor.
  3. O serviço do Tor derruba o circuito atual instantaneamente e constrói um novo. Como o nó de saída muda, o seu endereço de IP público na internet é renovado.

3. O Código do Script (Python)

Abaixo está o script estruturado em Python que utiliza a biblioteca oficial stem para controlar o Tor e a biblioteca requests para validar a mudança de IP em tempo real:

import time
import requests
from stem import Signal
from stem.control import Controller

def alterar_ip_tor():
    # Conecta à porta de controle do Tor (padrão é 9051)
    with Controller.from_port(port=9051) as controlador:
        # Autentica-se no serviço (requer configuração no torrc)
        controlador.authenticate(password="sua_senha_aqui")
        # Envia o sinal para renovar o circuito (Novo IP)
        controlador.signal(Signal.NEWNYM)

def obter_ip_atual():
    # Configura o proxy local do Tor (SOCKS5 padrão)
    proxies = {
        'http': 'socks5h://127.0.0.1:9050',
        'https': 'socks5h://127.0.0.1:9050'
    }
    try:
        # Faz uma requisição para identificar o IP público atual
        resposta = requests.get('https://api.ipify.org', proxies=proxies, timeout=5)
        return resposta.text
    except Exception as e:
        return f"Erro ao conectar: {e}"

if __name__ == "__main__":
    intervalo = 10  # Intervalo em segundos
    print("[*] Iniciando o alterador de IP do Tor...")
    
    while True:
        try:
            alterar_ip_tor()
            ip = obter_ip_atual()
            timestamp = time.strftime('%Y-%m-%d %H:%M:%S')
            print(f"[{timestamp}] Novo IP do Tor: {ip}")
            time.sleep(intervalo)
        except KeyboardInterrupt:
            print("\n[-] Automação interrompida pelo usuário.")
            break

4. Simulador Interativo (Ambiente Fictício)

Para entender o conceito na prática antes de configurar o seu terminal Linux, utilize o nosso Simulador Fictício abaixo. Ele emula em tempo real o comportamento síncrono entre as saídas de log do terminal e a resposta do navegador de testes a cada 10 segundos:

Simulador de Circuito Tor IP Changer
Terminal (Logs do Script):
[info] Simulador pronto. Clique em Iniciar...
Navegador (check.torproject.org):

5. Vantagens e Desvantagens da Técnica

Vantagens

  • Anonimato Dinâmico: Torna o rastreamento comportamental baseado em IP extremamente complexo.
  • Evasão de Bloqueios Rate-Limit: Excelente para scripts de raspagem de dados que são bloqueados ao fazer requisições em massa.

Desvantagens

Atenção aos efeitos colaterais:

Lentidão Extrema: Criar e validar um circuito criptografado de 3 nós a cada 10 segundos exige muito processamento e tempo de resposta da rede, tornando a navegação manual muito lenta.

Quebra de Sessões: Qualquer download ativo ou sessão que necessite de persistência de login será derrubada assim que o IP sofrer a alteração.