NetStat è un programma per Windows che censisce i dispositivi collegati alla rete locale e ne mantiene l’inventario nel tempo: nomi, categorie, note, credenziali e storia degli indirizzi. Si distribuisce come eseguibile singolo, non richiede installazione né alcun servizio esterno.
Non è solo uno scanner: la scansione è il punto di partenza, ma il programma è costruito attorno a un ciclo di lavoro completo — rilevare, documentare in Excel, reimportare risolvendo i conflitti, e riscrivere i nomi corretti sul router.
In breve
| Piattaforma | Windows (eseguibile singolo, nessuna installazione) |
| Interfaccia | grafica (Qt), in italiano |
| Router supportati | AVM Fritz!Box via TR-064 (facoltativo) |
| Formato documentazione | Excel .xlsx, con reimportazione |
| Dati | tutti in locale, accanto all’eseguibile |
| Rete verso l’esterno | nessuna, tranne la ricerca vendor facoltativa |
La scansione

La finestra principale è divisa in quattro sezioni sulla barra laterale. Da Scansione si impostano l’intervallo di indirizzi da sondare e i parametri del router, e si avvia la ricerca.
Il rilevamento procede in tre fasi:
- Ping su tutto l’intervallo, con due tentativi per indirizzo. Un solo tentativo sottostima i dispositivi trovati: un apparecchio Wi-Fi in risparmio energetico spesso non risponde in tempo al primo pacchetto.
- Lettura della tabella ARP del sistema, che recupera anche gli host che bloccano il ping.
- Risoluzione del nome a cascata: catalogo locale, DNS inverso, mDNS (query multicast diretta, a cui rispondono la maggior parte di telefoni, TV, stampanti e dispositivi IoT) e infine NetBIOS per gli altri PC Windows.
Il produttore viene ricavato dal MAC tramite un piccolo elenco locale, con ricerca online facoltativa e messa in cache per le scansioni successive.
Interfacce web
Con l’opzione attiva, ogni dispositivo che ha risposto al ping viene controllato su quaranta porte selezionate: oltre a 80 e 443, quelle tipiche di router, NAS, stampanti, telecamere e dei servizi autogestiti che spesso convivono sullo stesso mini-server in container diversi. Le porte aperte compaiono in una colonna e un doppio click apre la pagina nel browser.
L’elenco è volutamente corto e viene provato solo sugli host raggiungibili, per non trasformare una verifica di pochi secondi in un’operazione di minuti. Per cercare su un intervallo ampio esiste un’azione separata, su un singolo dispositivo e mai automatica.
La tabella dei risultati

Ogni riga è un dispositivo. Lo stato è una pillola colorata, la categoria un chip, e la colonna che sceglie cosa scrivere sul router una casella di spunta. Le colonne sono ordinabili, il campo di ricerca in alto filtra su tutti i campi, e un selettore sceglie fra due densità: Essenziali (entra tutto nella finestra) e Tutte le colonne, che aggiunge le note, le tre fonti di nome, il tipo di indirizzo e le interfacce web.
Diverse celle sono modificabili direttamente: doppio click su Dispositivo per rinominare o scegliere fra le fonti disponibili, click su Categoria per assegnarla, doppio click su Note per un testo libero.
La colonna Stato
Un dispositivo può essere acceso senza rispondere al ping — telecamere, prese smart e telefoni in standby ignorano ICMP per scelta. Lo stato riporta quindi l’evidenza più diretta disponibile:
| Stato | Significato |
|---|---|
| Online | ha risposto al ping: prova diretta |
| Online, senza ping | il router lo dà connesso in questo momento |
| Rilevato (ARP) | presente solo nella cache ARP, nessuna conferma che sia attivo |
| Attivo (solo router) | il router lo dà attivo ma la scansione non l’ha visto |
| Noto al router (non attivo) | il router lo conosce, non risulta collegato |
Le righe attenuate sono i dispositivi non raggiungibili in quel momento. Quelli mai visti prima sono evidenziati in ambra, con un badge «Nuovo» accanto al nome.
Integrazione con il Fritz!Box
Collegando il router via TR-064 (facoltativo, la password non viene mai salvata su disco) diverse informazioni smettono di essere supposizioni:
- il nome che ogni dispositivo ha comunicato al router in fase di DHCP, spesso più leggibile di qualunque hostname;
- quali dispositivi sono attivi, anche se non rispondono al ping;
- l’elenco completo dei dispositivi noti al router, compresi quelli irraggiungibili in quel momento;
- il pool DHCP reale del router, letto direttamente invece di fidarsi dell’intervallo digitato nella scheda Scansione.
Tipo di indirizzo
Il programma distingue quattro casi, ricavati da due campi che il router espone:
| Valore | Come viene stabilito |
|---|---|
| IP statico (sul dispositivo) | il router dichiara AddressSource = Static |
| DHCP riservato (IP fisso) | viene dal DHCP ma senza lease che scade |
| DHCP (dinamico) | viene dal DHCP con un lease in scadenza |
| DHCP (non determinato) | il router non ha riportato il dato |
A separare una riserva da un lease dinamico è LeaseTimeRemaining, non
l’appartenenza al pool: una riserva può stare — e di norma sta — dentro il pool.
Un lease normale ha un conto alla rovescia; un indirizzo che il router tiene
fisso su un dispositivo non ha nulla da far scadere e viene riportato come zero.
Per questo la tabella ha anche una colonna Stabilità IP, che non interroga
nessuno e riporta solo il comportamento osservato scansione dopo scansione —
stesso IP da 143 gg, oppure cambiato 2 volte. È una verifica indipendente, ed
è l’unica informazione del genere disponibile quando il router non è collegato.
Diagnostica

Una finestra dedicata mostra, per ogni dispositivo, i campi grezzi restituiti dal router accanto all’etichetta che il programma ne ha ricavato, con un pulsante per copiare tutto negli appunti. L’interpretazione di quei campi è comportamento di AVM e non un contratto documentato: la diagnostica permette di verificarla sul proprio router invece di doversene fidare.
Riscrittura dei nomi
Una volta sistemati i nomi in NetStat, un pulsante li riporta sul Fritz!Box, riga per riga e solo su quelle selezionate, dopo conferma.
Il router usa il nome anche come etichetta DNS locale, quindi accetta solo
lettere, cifre e trattini: un nome come lampada soppalco (1) verrebbe rifiutato
con un errore poco chiaro, e viene convertito prima dell’invio in
LampadaSoppalco1. Il riepilogo finale elenca cosa è stato scritto e cosa
adattato. Viene modificata solo la voce nell’elenco del router: nessun
dispositivo viene toccato.
Documentazione in Excel, con reimportazione
È la funzione attorno a cui è costruito il programma, e una scheda dedicata la
presenta nei suoi tre passi: esporta, sistema i nomi, reimporta. L’esportazione
produce un file .xlsx pensato per essere modificato e riletto, non un semplice
report.
Il foglio principale ha il MAC come prima colonna, ed è la chiave: nomi e indirizzi cambiano, il MAC no. Le quattro colonne che vengono rilette in importazione — nome, categoria, note, utente — sono evidenziate in giallo e la categoria ha un menù a tendina; tutto il resto è una fotografia di sola lettura dell’ultima scansione. Un secondo foglio contiene le istruzioni, un terzo (nascosto) marca il file come prodotto da NetStat.
Due comportamenti da conoscere:
- una cella vuota non cancella nulla. Cella vuota e colonna assente significano entrambe «nessuna opinione», non «cancella»: un file parziale non può distruggere informazioni che non si intendeva toccare;
- le password non vengono mai esportate, solo i nomi utente.
La riconciliazione
![]()
Alla reimportazione il file viene confrontato con la scansione più recente e con l’archivio, e nulla viene scritto prima della conferma. Per ogni dispositivo con un nome diverso si sceglie la fonte da tenere: dal file Excel (predefinita), dall’archivio, dalla scansione, dal router, oppure «non modificare». Due scorciatoie applicano la scelta a tutte le righe.
In evidenza vengono segnalati i casi che meritano attenzione:
- un indirizzo passato a un altro dispositivo rispetto a quanto registrato nel file, con entrambi i dispositivi nominati. Poiché tutto è agganciato al MAC e non all’IP, i nomi non possono comunque essere scambiati fra loro: è una segnalazione, non un errore da correggere;
- lo stesso nome su più dispositivi, prima che venga scritto;
- MAC presenti nel file ma mai visti, che vengono comunque aggiunti;
- righe scartate, con il motivo.
Inventario nel tempo
Oltre ai nomi, il programma tiene un database locale con la storia di ogni MAC mai rilevato: prima e ultima volta visto, ultimo indirizzo, da quanto tempo lo mantiene, quante volte è cambiato, categoria e note libere. Sono queste informazioni a rendere possibile l’avviso sui dispositivi nuovi e la colonna sulla stabilità degli indirizzi, e sopravvivono a scansioni e riavvii.
Le categorie disponibili sono otto: Computer, Telefono/Tablet, TV/Media, Stampante, Smart Home/IoT, Rete, Console, Altro.
Credenziali

Una cassaforte protetta da password principale conserva utenze e password dei dispositivi. È raggiungibile anche dalla tabella dei risultati: un doppio click sulla colonna Credenziali apre quella del dispositivo, oppure ne crea una già collegata al suo MAC, intitolata come il dispositivo e con l’indirizzo della sua interfaccia web se ne è stata rilevata una.
Come sono protette:
- la password principale non viene salvata da nessuna parte, nemmeno in forma offuscata: su disco finiscono solo un sale casuale e un token di verifica, il minimo necessario per controllare la password digitata senza poterla ricostruire;
- le singole password sono cifrate una per una con Fernet/AES, con chiave derivata tramite PBKDF2-HMAC-SHA256 e 390.000 iterazioni;
- nell’elenco la password non è mai in chiaro, e gli appunti si ripuliscono da soli dopo trenta secondi a meno che nel frattempo non sia stato copiato altro.
Dove vengono salvati i dati
Tutto quello che il programma ricorda vive accanto all’eseguibile: impostazioni, catalogo dei nomi, inventario, credenziali cifrate e cache dei produttori. Copiare la cartella significa portarsi dietro l’intera configurazione; non viene scritto nulla nel profilo utente.
Se quella cartella non risulta scrivibile — succede lanciando il programma da un percorso protetto — viene mostrato un messaggio esplicito e l’avvio si interrompe, invece di salvare altrove senza avvisare.
Requisiti
- Windows. L’eseguibile è autonomo: non serve installare Python né altro.
- Privilegi di amministratore consigliati, per una lettura affidabile della tabella ARP. Senza, il programma parte comunque e segnala il limite.
- Per l’integrazione con il router: un Fritz!Box con l’accesso delle applicazioni alla rete (TR-064) abilitato, di norma attivo di serie.
Limiti attuali
- Fra i router è supportato solo il Fritz!Box. Con gli altri restano scansione, ARP e risoluzione dei nomi, ma non i nomi DHCP, lo stato reale, la distinzione fra riserva e lease dinamico né la riscrittura dei nomi.
- L’elenco locale dei produttori è minimo: senza la ricerca online la colonna del produttore resta quasi sempre vuota.
- Non c’è uno storico completo delle scansioni: sono registrate la prima e l’ultima volta in cui un dispositivo è stato visto, non tutte le volte.
- Nessun rilevamento del servizio dietro una porta aperta: la ricerca estesa indica che la porta risponde, non di che servizio si tratti.
Disponibilità
L’eseguibile è in preparazione. Non richiede installazione, non comunica con alcun servizio esterno salvo la ricerca del produttore dal MAC — che è facoltativa e disattivabile — e non contiene telemetria di alcun tipo.
Il collegamento per scaricarlo comparirà in questa pagina appena la distribuzione sarà pronta.