🔍 Ping Scanner su Mac: codice Python
Se utilizzi macOS, un ping scanner in Python e uno strumento semplice per individuare host attivi nella rete locale. Di seguito trovi il codice pronto all'uso, la spiegazione passo passo e le indicazioni pratiche per eseguirlo e testarlo correttamente sulla tua LAN, nel rispetto dell'etica hacker.
📝 Codice Python: Ping Scanner
Script completo
Questo script invia un pacchetto ICMP a ogni IP di un intervallo e segnala gli host che rispondono. Su macOS il parametro corretto per il conteggio dei pacchetti e -c.
import subprocess
def ping\_host(ip):
#Esegue un ping a un host specifico (ip) e restituisce True se l'host risponde.
#Funziona su macOS/Linux usando il parametro -c (count).
try:
result = subprocess.run(
\["ping", "-c", "1", ip], # 1 pacchetto ICMP
stdout=subprocess.DEVNULL, # nasconde l'output
stderr=subprocess.DEVNULL
)
return result.returncode == 0 # 0 = successo
except Exception as e:
print(f"Errore durante il ping a {ip}: {e}")
return False
def ping\_scan(network\_prefix, start, end):
# Scansiona un intervallo di IP.
#Esempio: ping\_scan("192.168.1.", 1, 20)
active\_hosts = \[]
for i in range(start, end + 1):
ip = f"{network\_prefix}{i}"
if ping\_host(ip):
print(f"\[+] Host attivo: {ip}")
active\_hosts.append(ip)
else:
print(f"\[-] Nessuna risposta: {ip}")
return active\_hosts
if **name** == "**main**":
print("Avvio ping scan...")
\# Modifica il range in base alla tua rete locale
hosts = ping\_scan("192.168.1.", 1, 20)
print("\nHost trovati:")
for h in hosts:
print(h)
`
📄 Spiegazione del codice
Funzione ping_host
Usa il comando di sistema ping -c 1 per inviare un pacchetto ICMP a un singolo host. Se l'esito e positivo (codice 0), l'host e considerato attivo.
Funzione ping_scan
Costruisce gli indirizzi IP a partire da un prefisso di rete (es. 192.168.1.) e da un intervallo di host. Per ogni IP invoca ping_host e colleziona quelli che rispondono.
Blocco main
Esegue un esempio di scansione e stampa a video gli host attivi trovati. Personalizza prefisso e range in base alla tua sottorete.
🔧 Come testarlo su Mac
1. Scopri la tua rete locale
Apri Terminale e identifica l'IP del Mac per ricavare il prefisso di rete.
ifconfig
# Cerca l'interfaccia attiva (es. en0) e una riga del tipo:
# inet 192.168.1.25
# Prefisso di rete: 192.168.1.
2. Imposta il range nello script
Se la sottorete e /24 puoi coprire l'intera LAN da .1 a .254. Modifica la riga seguente nello script:
hosts = ping\_scan("192.168.1.", 1, 254) 3. Esegui lo script
Salva il file come ping\_scanner.py ed esegui con Python 3.
python3 ping\_scanner.py Output di esempio durante la scansione:
\[+] Host attivo: 192.168.1.1
\[-] Nessuna risposta: 192.168.1.2
\[+] Host attivo: 192.168.1.25
⚙ Suggerimenti e note importanti
Interpretazione dei risultati
192.168.1.1e spesso il router della rete.- PC, smartphone, stampanti e IoT possono rispondere o meno al ping.
- Alcuni dispositivi o firewall bloccano ICMP: nessuna risposta non implica necessariamente host spento.
Per una ricognizione piu rapida e completa puoi usare anche un ping sweep con nmap.
nmap -sn 192.168.1.0/24 Etica: esegui scansioni solo su reti di tua proprieta o per le quali hai ottenuto autorizzazione esplicita.
Questo articolo e stato generato da chatGPT.