Nmap: trova IP gratuiti dalla gamma


14

Esiste un modo per cercare IP gratuiti sulla rete? Io uso nmap -sP 192.168.1.0/24ma questo in realtà mostra host che sono attivi.


10
non risponde al ping non significa necessariamente inutilizzato.
Concedi il

1
Volete uno scanner IPAM, non nmap.
TheCleaner

2
La scansione di rilevamento host di @Grant Nmap (a volte chiamata "ping scan") invia molte sonde diverse, non solo richieste di eco ICMP. Per gli indirizzi sullo stesso collegamento dati, utilizza le richieste ARP, che sono praticamente impossibili da ignorare.
bonsaiviking

1
Dovresti anche ricordare che anche gli host che non sono accesi mostreranno di non avere un indirizzo IP.
Tero Kilkanen,

Risposte:


26

Usare Nmap in questo modo è un modo abbastanza preciso di fare ciò che hai chiesto, a condizione che alcune condizioni preliminari siano vere:

  1. È necessario eseguire la scansione come root (o amministratore su Windows) per inviare richieste ARP, non connessioni TCP. In caso contrario, la scansione potrebbe riportare un indirizzo come "inattivo" quando è semplicemente protetto da firewall.
  2. Puoi farlo solo da un sistema sullo stesso collegamento dati (livello 2) dell'intervallo di indirizzi che stai analizzando. In caso contrario, Nmap dovrà utilizzare sonde a livello di rete che possono essere bloccate da un firewall.

Per ottenere gli indirizzi "disponibili", è necessario ottenere l'elenco di indirizzi che Nmap riporta come "inattivo". Puoi farlo con un semplice comando awk:

sudo nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'

Riepilogo delle opzioni Nmap utilizzate:

  • Quando si utilizza l' -vopzione, Nmap stamperà gli indirizzi che trova come "giù" oltre a quelli che sono "su".
  • Invece di -sP, ho sostituito l'ortografia più recente -sn, che esegue ancora la stessa scansione, ma significa "salta la scansione della porta" invece della "Ping scan" fuorviante (poiché la fase di scoperta dell'host non significa necessariamente una scansione dell'eco o un ping ICMP ).
  • L' -nopzione salta le ricerche DNS inverse, il che ti fa guadagnare un po 'di tempo, poiché non sei interessato ai nomi ma solo agli indirizzi IP.
  • L' -oGopzione dice a Nmap di produrre un formato grepable , che è più facile da elaborare per awk. L'argomento " -" gli dice di inviare questo output a stdout.

Il comando awk quindi cerca "Stato: Giù" e stampa il secondo campo, contenente l'indirizzo IP.

Naturalmente, se si ha accesso alle configurazioni in esecuzione dello switch o ai contratti di locazione del server DHCP, è possibile ottenere questa risposta in modo molto più autorevole senza eseguire una scansione che potrebbe far scattare allarmi di sicurezza.


1
Aggiungi questo segnalibro per un uso futuro e non è nemmeno una mia domanda :)
MartinC

1

Non sono sicuro di n-map, ma si potrebbe ragionevolmente supporre che se si scrive uno script ping che invia 1 ping a ciascun indirizzo che gli host che ritornano con "destinazione non raggiungibile" non sono occupati e tutto ciò che ritorna "timeout richiesta" è occupato ma non risponde al ping. La differenza tra le due risposte è che "destinazione non raggiungibile" non ha ricevuto una risposta alla sua richiesta ARP. "Timeout richiesta" indica che qualcosa ha risposto alla richiesta ARP, ma non al pacchetto ICMP.


Quando eseguito con il privilegio di root, Nmap esegue semplicemente la richiesta ARP e riporta gli indirizzi che rispondono.
bonsaiviking,

0

Ecco la stessa cosa in PowerShell ....

((nmap -v -sn -n 10.208.2.0/24 -oG - ) -match "Status\:\sDown") | foreach {($_).Split(" ")[1]}

0

Eccone un altro ispirato ad Anders Larsson

per ip nel 172.18.5. {129..254}; fai {ping -c 1 -W 1 $ ip; } &> / dev / null || echo $ ip e fatto | ordinare

Il che significa: "Prova a eseguire il ping di tutti gli Ip nell'intervallo. Se il" ping "non riesce, stampa quell'IP"

Se fate

nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'

Funziona velocemente, ma ho notato che alcuni host segnalati come "Giù" in realtà sono "Su"

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.