Sto cercando uno strumento da riga di comando che ottiene un indirizzo IP e restituisca il nome host, per Windows.
Il comando che stai cercando si chiama nslookup
, funziona bene per le ricerche inverse IFF qualcuno ha configurato un file di zona inversa, che non sempre.
se tutto quanto sopra fallisce e stai specificatamente cercando un computer Windows, puoi usarlo
nbtstat -a 192.168.1.50
I dati restituiti saranno tutti i record NetBIOS della macchina. Quello con un tipo di record <20h> sarà di solito il nome della macchina.
Per molti indirizzi IP potresti usare solo ping -a, per esempio
ping -a 209.85.229.106
tornerà
Pinging ww-in-f106.google.com [209.85.229.106] with 32 bytes of data:
Reply from 209.85.229.106...........
Se si utilizza il comando nslookup con l'indirizzo IP come primo argomento, verrà restituito il record PTR (la voce inversa) se esiste. Per esempio:
nslookup 192.168.1.50
Usa Dig. Una porta di Windows è disponibile da ISC qui (cerca nella casella di download immediato il link al file Zip). Ecco il loro riferimento alla pagina man per Dig .
punto di Ward sui record di ricerca inversa che spesso non vengono creati è molto vero. Le ricerche inverse spesso falliscono perché molti amministratori non si preoccupano di creare i record ptr.
(testato su Windows 10 x64)
Dalla riga di comando:
FOR /F "tokens=2 delims= " %A in ('2^>NUL NSLOOKUP "%IP_ADDRESS%" ^| FINDSTR /C:": "') do ECHO %A
All'interno di uno script:
FOR /F "tokens=2 delims= " %%A in ('2^>NUL NSLOOKUP "%IP_ADDRESS%" ^| FINDSTR /C:": "') do ECHO %%A
Due note (laterali):
NSLOOKUP
devi usare 2^>NUL
invece di 1^>NUL
FINDSTR /C
per estrarre il valore dopo i quattro caratteri spazi bianchi. Poiché i quattro spazi sembrano esistere solo per il Name:
voce, questo sembra essere l'unico modo per farlo funzionare su altri sistemi localizzati.psexec\192.168.0.65 nome host
DMHD006 nome host uscito il 192.168.0.65 con codice di errore 0.