Visualizza solo gli indirizzi IP delle macchine online con nmap


19

So come utilizzare nmapper trovare l'elenco di host che sono attualmente online. Quello che vorrei fare è ottenere un elenco solo dei loro indirizzi IP, ora visualizza informazioni extra come

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

Quello che vorrei è poter eseguire un nmapcomando, ottenere un documento di testo degli indirizzi IP che sono attualmente online.

Questo è possibile?

Risposte:


33

Questo è comune:

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

Panoramica rapida di opzioni e comandi:

  • -ndisattiva la risoluzione inversa dei nomi, poiché desideri solo indirizzi IP. Su una LAN locale questo è probabilmente anche il passo più lento, quindi ottieni un buon aumento di velocità.
  • -snsignifica "Non eseguire una scansione della porta". È lo stesso del vecchio, deprecato -sPcon la "scansione ping" mnemonica.
  • -oG -invia l' output "grepable" a stdout, che viene reindirizzato a awk.
  • /Up$/ seleziona solo le righe che terminano con "Su", che rappresentano gli host online.
  • {print $2} stampa il secondo campo separato da spazi bianchi, che è l'indirizzo IP.

Perché $ dopo /Up? Ho scoperto che il comando nmap -n -sn 192.0.2.0/24 -oG - | awk '/Up/{print $2}'fornisce gli stessi risultati.
Michael

1
@Michael È solo un ulteriore livello di sicurezza per garantire che non stampiamo immondizia nel caso in cui qualcos'altro contenga la stringa "Up". In questo modo funziona anche se lo esegui su output grepable in un file da un diverso tipo di scansione come quello -sVche può contenere stringhe imprevedibili dai banner dei servizi di rete.
bonsaiviking

3

Puoi inviarlo a 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.