Produza apenas os endereços IP das máquinas on-line com o nmap

15

Eu sei usar nmap para encontrar a lista de hosts que estão on-line no momento. O que eu gostaria de fazer é obter uma lista de apenas seus endereços IP, agora ele exibe informações extras, como

Nmap scan report for 192.168.x.x' and 'Host is up (0.12s latency).

O que eu gostaria é poder executar um comando nmap , obter um documento de texto dos endereços IP que estão atualmente on-line.

Isso é possível?

    
por jasonwryan 28.01.2015 / 11:37

2 respostas

26

Isso é comum:

nmap -n -sn 192.0.2.0/24 -oG - | awk '/Up$/{print $2}'

Resumo rápido de opções e comandos:

  • -n desativa a resolução reversa do nome, pois você só quer endereços IP. Em uma LAN local, esta é provavelmente a etapa mais lenta também, então você obtém um bom aumento de velocidade.
  • -sn significa "Não faça uma varredura de porta". É o mesmo que o antigo e obsoleto -sP com o "ping scan" mnemônico.
  • -oG - envia a saída "grepable" para a stdout, que é canalizada para awk .
  • /Up$/ seleciona apenas as linhas que terminam com "Up", representando hosts que estão on-line.
  • {print $2} imprime o segundo campo separado por espaço em branco, que é o endereço IP.
por 29.01.2015 / 04:02
2

Você pode canalizá-lo para awk :

nmap -sP 192.168.1.0/24 | awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'
192.168.1.1
192.168.1.10
192.168.1.20
192.168.1.30
    
por 28.01.2015 / 23:23

Tags