Ho un sacco di macchine su un intervallo di indirizzi IP che voglio fare il ping simultaneamente come un modo rapido e sporco di dire quali sono accese. Quale software (gratuito) posso usare per fare questo?
Sto usando Windows Vista .
Ho un sacco di macchine su un intervallo di indirizzi IP che voglio fare il ping simultaneamente come un modo rapido e sporco di dire quali sono accese. Quale software (gratuito) posso usare per fare questo?
Sto usando Windows Vista .
Risposte:
Il modo più rapido è utilizzare Angry IP Scanner
Lo uso come vuoi tu!
Nmap è disponibile per Windows:
# nmap -sP 10.0.10.1-100
-sn
di eseguire una "scansione senza porte", solo alla ricerca di host.
Ho usato questo comando
for %%i in 200 to 254 do ping 10.1.1.%%i
in un file batch per un motivo simile
Ecco la gamma di indirizzi IP come puoi notare in:
Invece di eseguire il ping manuale di tutti gli indirizzi IP sulla LAN, è possibile effettuare le seguenti operazioni:
Apri un prompt dei comandi e digita:
FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
-n 1
significa che verrà inviato solo 1 pacchetto ping a ciascun computer.
Cambia 192.168.0
per abbinare il tuo ID di rete.
Questo eseguirà il ping di tutti gli indirizzi IP sul segmento di rete 192.168.0.0 e creerà un file di testo chiamato ipaddresses.txt
in C: \, dove elencherà solo gli indirizzi IP che hanno dato una risposta.
È inoltre possibile aggiungere -a
al comando ping per risolvere tutti gli indirizzi IP che rispondono ai nomi host, ma in tal modo lo script impiegherà molto tempo per terminare:
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
Potresti semplicemente scrivere uno script Bash che scorre in un intervallo di indirizzi IP e li esegue il ping. Un esempio che esegue il ping degli indirizzi nell'intervallo da 10.1.1.1 a 10.1.1.255 (incluso):
for i in {100..255}
do
ping 10.1.1.$i
done
ping 10.1.1.i
probabilmente vuole esserlo ping 10.1.1.$i
.
Salvare lo script seguente sul server con un'estensione di .bat
o .cmd
e chiamare il file dal prompt dei comandi. Dovrebbe essere richiesto di inserire l'intervallo di indirizzi IP.
Inserisci solo tre ottetti dell'indirizzo IP.
@echo off
SET count=0
SET /p subnet=Please enter IP address range (for example, 192.168.0)
:start
SET /a count=%count%+1
cls
ECHO. & ECHO Trying %subnet%.%count% & ECHO.
ping -n 1 -w 1000 %subnet%.%count% >nul
IF %errorlevel%==0 echo %subnet%.%count% UP >> c:\pingnet.log
IF %errorlevel%==1 echo %subnet%.%count% DOWN >> c:\pingnet.log
IF %count%==254 goto :eof
GOTO start
Una volta eseguito il comando, creerà un nome file di testo pingnet.log
nella radice dell'unità C. Tale file dovrebbe fornire un elenco di indirizzi IP usati e inattivi (gratuiti).
Per esempio:
10.2.214.1 UP
10.2.214.2 UP
10.2.214.3 UP
10.2.214.4 DOWN
È abbastanza semplice da eseguire e dovrebbe farti risparmiare un sacco di tempo.
Angry IP Scanner è eccezionale, ma preferisco gli strumenti CLI. Vedi se riesci a far funzionare questo script PowerShell in Vista. https://github.com/webstersprodigy/PowerSploit/blob/Portscan/Recon/Invoke-Portscan.ps1
Suggerisco anche di accedere a una CLI Linux usando un cd / usb live di Linux, un doppio avvio o un VM in VirtualBox. (Installa VirtualBox, aggiungi un nuovo VM, installa Debian.) Una CLI di Linux è preziosa.
Da una CLI di Linux, eseguire quanto segue:
for ip in 172.10.1.{1..254}; do ping -c 1 -w 1 $ip > /dev/null && echo $ip "$(nslookup $ip | grep 'name = ' | awk -F ' = ' '{print $2}')"; done
Regola il raggio d'azione della tua rete (la parte "172.10.1") e il gioco è fatto. Ciò fornirà un elenco di tutti gli host della rete che rispondono alle richieste di echo (ping) dell'ICMP e le risolverà sul server DNS.
Nota: questo non è il modo più affidabile per testare gli host live poiché potrebbero avere l'ICMP bloccato.
nmap -sP 192.168.1.0/24
Nota: Nmap è più affidabile in quanto è uno scanner di porte e basa i suoi risultati sull'attività su più di semplici risposte ICMP. È molto usato dai pentesteri e vale la pena imparare.