Descobrindo IPs de equipamentos fora de rede com tcpdump

Resumo rápido (nível DevData): quando um equipamento está em outra sub-rede/VLAN ou com IP de fábrica, arping e ping falham. A forma confiável é capturar o tráfego Ethernet do MAC do dispositivo com tcpdump e extrair o IP que ele anuncia (ou o IP de origem nos pacotes). Este post mostra passo a passo, comandos prontos e um script único que devolve o IP automaticamente.


Pré-requisitos

  • Acesso root ou sudo na máquina que fará a captura.
  • A interface física ligada ao mesmo segmento que o equipamento (ou acesso a SPAN/mirror do switch).
  • Conhecer o MAC do equipamento (ex.: 80:8F:E8:C2:04:D1).

Comando básico

sudo tcpdump -i enp3s0 -n -e ether host 80:8F:E8:C2:04:D1

O que cada opção faz:

  • -i enp3s0 → interface a escutar. (altere para a sua interface)
  • -n → não resolve nomes (mantém IPs numéricos).
  • -e → mostra cabeçalho Ethernet (MACs).
  • ether host <MAC> → filtra pacotes cujo src ou dst corresponda ao MAC.

Este comando mostra TODO o tráfego de/para o MAC especificado — ARP, IP, DHCP, etc. O objetivo é observar o IP de origem que o equipamento anuncia.


Exemplo prático (ARP)

Saída típica para ARP (exemplo real):

80:8f:e8:c2:04:d1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: Request who-has 10.189.94.1 tell 10.189.94.71, length 46

Interpretação direta:

  • 80:8f:e8:c2:04:d1 → MAC de origem (seu equipamento)
  • who-has 10.189.94.1 → IP que o equipamento está buscando (gateway/host)
  • tell 10.189.94.71IP da câmera (origem)

Logo: o IP da câmera é 10.189.94.71.


Extraindo automaticamente o IP (ARP + IP)

Dependendo do tráfego que o dispositivo gera, você pode ver linhas ARP ou pacotes IP. Aqui vão dois snippets úteis.

1) Extrair IP a partir de linhas ARP “tell”

sudo tcpdump -i enp3s0 -n -e ether host 80:8F:E8:C2:04:D1 2>/dev/null \
  | sed -n 's/.*tell \([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/p' -m 1

Explicação: sed captura a primeira ocorrência do padrão tell <IP> e imprime apenas o IP.

2) Extrair IP a partir de pacotes IP (caso o dispositivo abra conexões TCP/UDP)

sudo tcpdump -i enp3s0 -n -e ether host 80:8F:E8:C2:04:D1 and ip 2>/dev/null \
  | awk '/IP/ { print $2 }' | sed 's/>.*//' -m 1

awk pega o segundo campo em linhas que contêm IP e sed limpa >dest: deixando só o IP de origem.


Script único — captura e retorna IP (bash)

Salve como detect_mac_ip.sh e rode com sudo.

#!/usr/bin/env bash
# detect_mac_ip.sh <INTERFACE> <MAC> <TIMEOUT>
IF=$1; MAC=$2; TIMEOUT=${3:-15}

timeout $TIMEOUT sudo tcpdump -i "$IF" -n -e ether host "$MAC" 2>/dev/null \
  | awk '
    /who-has/ { for(i=1;i<=NF;i++) if($i=="tell") print $(i+1) }
    /IP/ && !/ARP/ { print $2 }
  ' \
  | sed 's/>.*//' \
  | awk 'NF{print; exit}'

# exit code: 0 if found (and printed), 124 if timeout

Uso:

sudo ./detect_mac_ip.sh enp3s0 80:8F:E8:C2:04:D1 20
  • O script tenta capturar por TIMEOUT segundos e imprime o primeiro IP detectado (ARP tell ou origem IP).
  • Se nada for encontrado, o comando termina com código 124 (timeout).

Pontos de contingência (quando não aparece nada)

  1. Dispositivo em outra VLAN/subnet → tcpdump na porta errada não verá tráfego. Solução: usar porta mirror/SPAN ou conectar direto.
  2. Dispositivo silencioso até configuração → reinicie a câmera para forçar tráfego (DHCP/ARP).
  3. Switch com isolamento/port-security → habilite monitoramento ou trabalhe localmente na porta física.
  4. DHCP em equipamentos gerenciados → se você tem acesso ao equipamento que faz DHCP (router, switch), consulte a tabela de leases.

Boas práticas e segurança

  • Rode captura apenas em redes que você administra ou com autorização explícita. Sniffing sem permissão é ilegal.
  • Use -c ou timeout para evitar capturas infinitas.
  • Preserve logs de captura com tcpdump -w se precisar auditar depois.

Conclusão

Capturar tráfego pelo MAC é a forma mais robusta de descobrir IPs de equipamentos “fora de rede” (ou seja, fora da sua sub-rede ativa). Com tcpdump e um pequeno script você obtém o IP rapidamente, sem depender de arping, nmap ou ferramentas proprietárias. Esse é o método “na unha” — direto, determinístico e confiável.

Rolar para cima