giovedì 27 settembre 2018

Un IP SCANNER in BATCH da una riga di codice, senza installare niente

Buongiorno a tutti,
 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 %%a


Per 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?

Happy Scripting!


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.