segunda-feira, 10 de fevereiro de 2025

Como Verificar uma Lista de IPs

Um domínio pode ser provido por muitos IPs distintos, então surgiu para mim a necessidade de determinar qual IP não estava respondendo.

O dig permite descobrir rapidamente quais IPs estão relacionados ao domínio no DNS.


dig +short some.random.domain
192.168.10.20
192.168.10.21
192.168.10.22
192.168.10.23

Faça de conta que a minha lista de IPs é bem grande. Quero testar todos, mas sem perder muito tempo em cada um. Para ser mais rápido com o ping, podemos usar umas opções incomuns:


ping -w 1 -c 2 192.168.10.20
PING 192.168.10.20 (192.168.10.20) 56(84) bytes of data.

--- 192.168.10.20 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

O -w 1 encerra a espera com 1s e o -c 2 emite apenas 2 pacotes ICMP. Ajuste conforme sua necessidade

Então, para percorrer toda a minha lista e apenas imprimir os IPs que não responderam, lançamos mão do xargs e do grep.


dig +short some.random.domain | \
  xargs -I{}  ping -w 1 -v -c 2 {} | \
  grep -B1 "0 received"
--- 192.168.10.20 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

O -B1 do grep nos permite mostrar a linha anterior ao resumo dos pacotes, já que o ping não coloca tudo na mesma linha.

Nenhum comentário:

Postar um comentário