Under the Hood
Module map and threading model.
Module map
| File | Role |
|---|---|
app.py | Tkinter GUI — toolbar, results table, detail panel, deep-scan popup window |
scanner.py | Core discovery engine — ARP/ping sweep, hostname resolution, vendor lookup, quick classification |
deep_scan.py | Full port sweep, banner grabbing, SNMP, NetBIOS, UPnP/SSDP, OS fingerprinting |
mdns_discovery.py | Passive zeroconf/Bonjour browse for names and service records |
exporter.py | CSV / HTML / JSON writers |
deps/ | Vendored copies of scapy, zeroconf, ifaddr for offline/no-pip environments |
Both scan stages run on background threads and report progress back to the Tkinter main loop via after(0, …) callbacks, so the table streams results live instead of blocking the UI for the duration of a sweep.