Scanner di Rete Locale
Un'interfaccia GUI Tkinter che scansiona una rete IPv4 locale (ARP + probe nmap), mostra i dispositivi, permette di eseguire scansioni complete delle porte ed esportare i risultati.
Panoramica rapida
- Scansione ARP per scoprire i dispositivi sulla LAN.
- Probe nmap migliorati per hostname, vendor, porte aperte, stima OS e latenza.
- Il pulsante Porta Completa esegue una scansione nmap intensiva per un dispositivo selezionato.
- Valutazione del rischio intelligente (Basso/Medio/Alto/Critico) basata sulle porte aperte rilevate.
- Statistiche dashboard in tempo reale (dispositivi totali, host con porte aperte, host ad alto rischio, latenza media).
- Filtro/ricerca in tempo reale e colonne tabella ordinabili per un triage più veloce.
- Riscansione selezionata, copia IP e informazioni di rete (IP locale/pubblico + dettagli piattaforma).
- Esporta risultati in CSV o JSON.
Requisiti
- Windows 10/11 (testato)
- Python 3.9+ (3.10+ consigliato)
- Nmap installato e nel PATH (scarica da https://nmap.org/)
- Npcap installato (richiesto da scapy su Windows) — scegliere "WinPcap-compatible mode" se offerto
- Eseguire lo script con privilegi di Amministratore per funzionalità complete (ARP, socket raw, alcune funzionalità nmap)
Pacchetti Python (installare tramite requirements.txt):
- scapy
- python-nmap
- tqdm
- requests
Installazione
- Aprire PowerShell (consigliato: eseguire come Amministratore per comodità)
- Creare e attivare un ambiente virtuale (opzionale ma consigliato)
- python -m venv .venv
- ..venv\Scripts\Activate.ps1
- Installare i pacchetti
- pip install -r requirements.txt
Assicurarsi che nmap.exe sia installato e disponibile nel PATH (eseguire nmap --version per verificare).
Eseguire la GUI
Consigliato (Windows):
- Fare clic destro su Visual Studio Code e scegliere "Esegui come amministratore", aprire il progetto, premere F5 per eseguire il debug o Esegui.
- Oppure aprire una PowerShell come amministratore ed eseguire:
Note:
- Il programma richiederà l'elevazione all'avvio (ShellExecute). Se si esegue da VS Code, avviare VS Code come amministratore per consentire al debugger integrato di avviarsi correttamente con i privilegi.
- Se la GUI non appare dopo aver accettato il prompt UAC, eseguire lo script direttamente da una PowerShell elevata per verificare.
Configurazione di VS Code
Se si desidera una configurazione di debug, aggiungere .vscode/launch.json (esempio):
{
"version": "0.2.0",
"configurations": [
{
"name": "Network Scanner (Admin)",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/app.py",
"console": "integratedTerminal",
"args": []
}
]
}
Importante: Su Windows è più semplice eseguire VS Code stesso come Amministratore (clic destro → Esegui come amministratore) prima di avviare la configurazione di debug.
Uso della GUI
L'input del range IP accetta:
- CIDR:
192.168.1.0/24
- IP singolo:
192.168.1.10
- Intervalli con trattino:
192.168.1.1-254 o 192.168.1.10-192.168.1.20
- Wildcard:
192.168.1.*
- Elenco con virgole:
192.168.1.1,192.168.1.5,192.168.1.100
Pulsanti:
- Avvia scansione — ARP discover + probe leggeri
- Scansione porta completa — selezionare una riga, fare clic per eseguire una scansione nmap intensiva su quell'IP
- Riscansiona selezionato — aggiorna i dettagli solo per l'host attualmente selezionato
- Copia IP — copia l'IP dell'host selezionato negli appunti
- Informazioni di rete — stampa i metadati di rete locale/pubblica nel pannello dei log
- Stop — richiede l'interruzione della scansione
- Esporta CSV / Salva JSON — salva le informazioni raccolte sui dispositivi
- Esci — chiude l'app
- Filtrare i dispositivi in tempo reale (ricerca per IP, hostname, vendor, OS o rischio) e mostrare opzionalmente solo gli host con porte aperte.
- Fare clic sulle intestazioni delle colonne per ordinare le righe.
- Fare clic su una riga del dispositivo per mostrare un riepilogo intuitivo più i dati strutturati grezzi nel pannello inferiore. È possibile fare clic sulle righe del log per selezionare automaticamente i dispositivi se è presente un IP.
Comportamento e limiti
- La scansione ARP funziona solo sul segmento Ethernet/LAN locale.
- Le scansioni complete delle porte e il rilevamento del sistema operativo potrebbero richiedere privilegi di amministratore e possono richiedere diversi minuti per host.
- L'espansione con trattino/wildcard include limiti per evitare scansioni enormi accidentali (difensiva).
- Nmap deve essere installato separatamente — python-nmap è solo un wrapper.
Risoluzione dei problemi
- Se appare il dialogo UAC "accetta amministratore" ma la GUI non si apre:
- Assicurarsi che VS Code sia stato avviato come amministratore (preferibile) o eseguire lo script in una PowerShell come amministratore.
- Verificare che
nmap --version funzioni dallo stesso ambiente.
- Se si utilizza il debugger, eseguire la sessione di debug da un'istanza di VS Code con privilegi elevati.
- Se scapy fallisce su Windows: verificare che Npcap sia installato e che il virtualenv utilizzi lo stesso interprete Python.
Sicurezza e aspetti legali
Scansionare solo reti e dispositivi di cui si è proprietari o per i quali si ha esplicita autorizzazione a testare. La scansione non autorizzata può essere illegale e creare disagi.
Roadmap
Miglioramenti dello scanner
Interfaccia
Funzionalità di sicurezza