eccoci qui di nuovo a parlare di scripting e di belle cose che si possono automatizzare con i nostri comandi interpretati.
Oggi voglio parlarvi di un trucco che uso spesso quando mi trovo in situazioni nelle quali devo identificare tutti gli host attivi di una rete e non ho possibilità (o voglia, o tempo) di installare un software per farlo.
Sinceramente, non capisco perché andiamo a scomodare programmi e installare cose sul PC, quando possiamo tranquillamente aprire un prompt dei comandi e digitare
For /L %a IN (1,1,254) DO @ping -n 1 -w 100 192.168.1.%a | FIND /I "risposta"
Ovviamente, vi devo spiegare.
Per prima cosa so che la mia rete di casa è con indirizzamento 192.168.1.xxx, ossia 24 bit di subnet mask (255.255.255.0), ossia, in soldoni: va da 192.168.1.1 a 192.168.1.254.
Informazioni facilmente ottenibili anche da qualsiasi computer con il comando : ipconfig
Quindi scelgo di ciclare con FOR, partendo da 1, aggiungendo 1 ad ogni ciclo e fino ad arrivare a 254 (1,1,254) e memorizzando il valore attuale nella variabile %a.
Nota importante:
Se mettete questo comando in un file .bat, %a deve diventare %%aPer ogni ciclo, poi, pingo l'indirizzo 192.168.1.%a (dove %a prenderà il valore del ciclo attuale) e cerco, nell'output del comando, la parola "Risposta", in modo case-insensitive (/I) con FIND.
Per andare più veloce e avere un output più pulito, faccio un ping una volta sola per ciclo (-n 1) e do un timeout di 100 millisecondi (-w 100).
ed ecco il risultato che otteniamo
in sintesi, in ogni riga c'è un indirizzo IP che ha risposto al PING.
Facile, no?
Nessun commento:
Posta un commento
I commenti sono soggetti a moderazione, prima di essere pubblicati.
Qualsiasi contenuto illecito, immorale o che io ritenga (arbitrariamente) offensivo od inappropriato, verrà cancellato.