Se sei un utente di Android e vuoi esplorare il mondo della sicurezza informatica o semplicemente testare la tua rete domestica, puoi utilizzare Termux, un’applicazione che fornisce un ambiente Linux direttamente sul tuo smartphone. In questo articolo vedremo come configurare e usare uno script Python per scansionare indirizzi IP senza dover scrivere codice da zero.

Cosa serve prima di iniziare:
- Termux: Scarica e installa Termux da F-Droid.
- Una connessione internet attiva per scaricare gli strumenti necessari.
- Conoscenze di base su indirizzi IP e reti locali.
Nota importante: Scansionare IP al di fuori della tua rete privata può violare leggi e regolamenti. Usa queste tecniche solo per scopi educativi o per testare dispositivi di cui hai l’autorizzazione esplicita.
Passaggio 1: Installare Termux:
Apri F-Droid e cerca <<Termux>>. Installa l’applicazione e lanciala una volta scaricata.
Aggiornare i pacchetti:
Per prima cosa, è necessario aggiornare i pacchetti predefiniti di Termux. Apri Termux e digita:
pkg update && pkg upgrade
Questo comando aggiorna tutti i pacchetti disponibili nel repository di Termux.
Installare Python:
Python è un linguaggio di programmazione molto versatile e ci aiuterà a eseguire lo script per scansionare gli indirizzi IP. Per installarlo, digita:
pkg install python
Installare Nmap:
Nmap è uno strumento open source molto potente per scansionare reti e individuare dispositivi attivi. Per installarlo in Termux, digita:
pkg install nmap
Scaricare lo script Python:
import subprocess
from colorama import init, Fore
# Inizializza colorama per i colori nel terminale
init(autoreset=True)
def check_online_ips(network_prefix):
print(f"Scansione degli IP raggiungibili nella rete {network_prefix}.0/24...\n")
online_ips = [] # Lista per salvare gli IP raggiungibili
total_ips = 254 # Numero totale di IP nella rete 192.168.1.0/24 (da .1 a .254)
for i in range(1, 255): # Scansiona da .1 a .254
ip = f"{network_prefix}.{i}"
try:
# Esegui ping con subprocess (1 pacchetto, timeout 1 secondo)
subprocess.run(
["ping", "-c", "1", "-W", "1", ip],
stdout=subprocess.DEVNULL, # Ignora output
stderr=subprocess.DEVNULL, # Ignora errori
check=True, # Solleva eccezione se il ping fallisce
)
online_ips.append(ip) # Salva l'IP nella lista
print(Fore.GREEN + f"[+] {ip} è raggiungibile.") # Testo verde
except subprocess.CalledProcessError:
pass # Ignora gli IP non raggiungibili
# Calcola e mostra il progresso
progress = (i / total_ips) * 100
print(Fore.CYAN + f"Progresso: {progress:.2f}% completato", end="\r")
# Mostra solo gli IP raggiungibili alla fine
print("\n\n--- Risultati Finali ---")
if online_ips:
print(Fore.GREEN + "\nIP raggiungibili:")
for ip in online_ips:
print(Fore.GREEN + f" - {ip}")
else:
print(Fore.RED + "\nNessun IP raggiungibile trovato.")
if __name__ == "__main__":
# Prefisso della rete (senza il quarto ottetto)
network_prefix = "192.168.1"
check_online_ips(network_prefix)
Spiegazione Script per supporto IP:
Cambia il Prefisso della Rete (network_prefix
) :
Trova questa riga nello script:
network_prefix = "192.168.1"
- Modifica il valore a seconda della tua rete:
- Per una rete
10.0.0.0/24
: Cambia in"10.0.0"
. - Per una rete
172.16.0.0/24
: Cambia in"172.16.0"
. - Per una rete
192.168.5.0/24
: Cambia in"192.168.5"
.
- Per una rete
Lascia il Ciclo di Scansione Invariato (per reti /24
):
- Se stai lavorando con una rete
/24
(256 indirizzi IP), non devi modificare il ciclo:
for i in range(1, 255):
Se hai una Rete /16
o /8
:
- Aggiungi un secondo ciclo per scansionare più ottetti:
- Esempio per
10.0.0.0/16
- Esempio per
for j in range(0, 256): # Ottetto secondario
for i in range(1, 255): # Ottetto finale
ip = f"10.{j}.{i}"
# Resto dello script...
Esempi di Modifiche:
- Rete
10.0.0.0/24
:- Modifica:
network_prefix = "10.0.0"
- Modifica:
- Rete
172.16.0.0/24
:- Modifica:
network_prefix = "172.16.0"
- Modifica:
- Rete
192.168.5.0/24
:- Modifica:
network_prefix = "192.168.5"
- Modifica:
- Rete
10.0.0.0/16
:- Aggiungi un ciclo annidato come mostrato sopra.
Sono solo queste le modifiche necessarie.
Avvio script:
Per avviarlo occorre copiarlo dentro termux usando il comando:
nano nome.py
nel mio caso:
nano scanip.py
Poi salvare premendo CTRL+Z e scrivere:
:wq!
Il risultato e che lo script darà tutti gli ip raggiungili nella classe 192.168.1.1:


Il risultato finale mostra tutti gli ip connessi nella rete:

Ulteriori informazioni:
Utilizzare Termux e Python per la scansione di IP è un modo efficace per iniziare a capire come funzionano le reti e migliorare le tue competenze in sicurezza informatica. Ricorda sempre di agire in modo responsabile e conforme alle leggi locali.