A Tkinter GUI that scans a local IPv4 network (ARP + nmap probing), shows devices, lets you run full port scans, and export results.
- ARP scan to discover devices on the LAN.
- Improved nmap probes for hostname, vendor, open ports, OS guess, and latency.
- Full-port button runs an intensive nmap scan for a selected device.
- Smart risk scoring (Low/Medium/High/Critical) based on detected open ports.
- Real-time dashboard stats (total devices, open-port hosts, high-risk hosts, average latency).
- Live filtering/search and sortable table columns for faster triage.
- Rescan-selected, copy-IP, and network insights (local/public IP + platform details).
- Export results to CSV or JSON.
- Windows 10/11 (tested)
- Python 3.9+ (3.10+ recommended)
- Nmap installed and on PATH (download from https://nmap.org/)
- Npcap installed (required by scapy on Windows) — choose "WinPcap-compatible mode" if offered
- Run script with Administrator privileges for complete functionality (ARP, raw sockets, some nmap features)
Python packages (install via requirements.txt):
- scapy
- python-nmap
- tqdm
- requests
- Open PowerShell (recommended: run as Administrator for convenience)
- Create and activate virtual environment (optional but recommended)
- python -m venv .venv
- ..venv\Scripts\Activate.ps1
- Install packages
- pip install -r requirements.txt
Ensure nmap.exe is installed and available on PATH (run nmap --version to verify).
Recommended (Windows):
- Right-click Visual Studio Code and choose "Run as administrator", open the project, press F5 to debug or Run.
- Or open an Administrator PowerShell and run:
- python app.py
Notes:
- The program will request elevation on start (ShellExecute). If you run from VS Code, start VS Code as admin to let the integrated debugger launch correctly with privileges.
- If the GUI does not appear after accepting the UAC prompt, run the script directly from an elevated PowerShell to verify.
If you want a debug configuration, add .vscode/launch.json (example):
{
"version": "0.2.0",
"configurations": [
{
"name": "Network Scanner (Admin)",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/app.py",
"console": "integratedTerminal",
"args": []
}
]
}Important: On Windows it is simpler to run VS Code itself as Administrator (right-click → Run as administrator) before launching the debug configuration.
- IP range input accepts:
- CIDR:
192.168.1.0/24 - Single IP:
192.168.1.10 - Hyphen ranges:
192.168.1.1-254or192.168.1.10-192.168.1.20 - Wildcard:
192.168.1.* - Comma list:
192.168.1.1,192.168.1.5,192.168.1.100
- CIDR:
- Buttons:
- Start Scan — ARP discover + light probes
- Full Port Scan — select a row, click to run an intensive nmap scan on that IP
- Rescan Selected — refreshes details for only the currently selected host
- Copy IP — copies selected host IP to clipboard
- Network Insights — prints local/public network metadata in the log panel
- Stop — request scan stop
- Export CSV / Save JSON — save collected device info
- Quit — close app
- Filter devices in real-time (search by IP, hostname, vendor, OS, or risk) and optionally show only hosts with open ports.
- Click column headers to sort rows.
- Click a device row to show a user-friendly summary plus raw structured data in the lower panel. You can click lines in the log to auto-select devices if an IP is present.
- ARP scanning works only on the local Ethernet/LAN segment.
- Full port scans and OS detection may require admin privileges and can take several minutes per host.
- The hyphen/wildcard expansion includes limits to avoid accidental huge scans (defensive).
- Nmap must be installed separately — python-nmap is only a wrapper.
- If "accept admin" UAC dialog appears but no GUI opens:
- Ensure VS Code was started as admin (preferred) or run the script in an Administrator PowerShell.
- Verify
nmap --versionworks from the same environment. - If using the debugger, run the debug session from an elevated VS Code instance.
- If scapy fails on Windows: verify Npcap installed and your virtualenv uses the same Python interpreter.
Only scan networks and devices you own or have explicit permission to test. Unauthorized scanning can be illegal and disruptive.
- Faster asynchronous scanning
- Better OS detection
- More device fingerprinting
- Dark mode
- Better dashboard charts
- Network topology map
- Vulnerability checks
- Service detection improvements
- Security report generation
- Linux support
- macOS support