A hacker-themed port scanner with a modern async workflow, live terminal logs, progress+ETA, CIDR discovery, route tracing, and exportable reports.
- Async scans with job tracking (
/scan/start,/scan/status/<job_id>,/scan/result/<job_id>) - Live progress bar + percentage + ETA
- Live terminal-style scan logs
- Port range support (
1-1024,443,3306) and top-port presets - Scan modes:
SYN,UDP,STEALTH,CONNECT - CIDR host discovery + optional “scan all alive hosts”
- Route table (traceroute-style)
- Service enrichment:
- HTTP title/headers
- TLS certificate info
- History and compare (
opened/closed) persisted in SQLite - Export reports: CSV, JSON, Markdown
- Scanner control panel (target, ports, presets, scan mode)
- Progress strip with ETA
- Live terminal log stream
- Result table + route table
- Recent scans history panel
- Python 3
- Flask
- Scapy
- Requests
- SQLite
- Gunicorn (production)
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python app.pyOpen: http://127.0.0.1:5000
docker compose up --buildOpen: http://127.0.0.1:5000
Notes:
- Container runs with
NET_RAWandNET_ADMINcapabilities for packet-level scans. - Use only on targets you are explicitly authorized to test.
GET /healthPOST /scan/startGET /scan/status/<job_id>GET /scan/result/<job_id>GET /historyPOST /scan(sync compatibility route)
app.py-> routes, async jobs, SQLite persistencevalidators.py-> target/port parsing and validationscanner_core.py-> scan engine + protocol enrichmentenrichment.py-> geolocation, OS guess, route table, host discoverytemplates/index.html-> UI markupstatic/script.js-> UI behavior, polling, exportsstatic/style.css-> hacker-style responsive themetests/-> parser/API tests
pytest -qRun scans only against systems and networks you own or have explicit permission to assess.