An interactive Python-based TCP Port Scanner with a modern CustomTkinter GUI. This tool allows users to quickly scan hosts for open ports, grab banners, and visualize results in a clean and customizable interface.
- Port scanning — Scan a single host or hostname across a port range (e.g., 1-1024).
- Banner grabbing — Attempt to read an initial banner from an open TCP port to help identify the service.
- Filter results — Toggle between viewing all scanned ports or only open ports.
- Customizable themes — Light, Dark, and Neon UI themes.
- Settings manager — Tabs for Appearance, Scan options (timeouts, concurrency), and Reports.
- Presets & history — Save scan presets (e.g., "quick", "full"), and access recent targets.
- Report export — Save scan reports as PDF (via reportlab) or CSV for documentation.
- Real-time UI — Live results, progress bar, and scan status messages.
- Safe defaults — Conservative timeouts and limited concurrency to avoid accidental DoS.
# use to install the required dependencies
pip install -r requirements.txtpython3 tcp_port_scanner.py [-h] [--ports PORTS] [--top TOP] [--timeout TIMEOUT] [--threads THREADS] [--csv CSV] [--json JSON] [--pdf PDF] [--json-only] targetLaunch the app using command:
python3 tcp_port_scanner_gui.py- Enter a target IP address or hostname (e.g., 192.168.1.10, example.local).
- Enter a port range (e.g., 1-1024 or 22,80,443).
- Choose a preset or open Settings to tune concurrency and timeouts.
- Click Start Scan and watch results appear in real time.
- Export the results using the Export button (PDF/CSV).
Tip: use a small port range and low concurrency for initial tests.
This repo is intended for educational and penetration testing lab purposes only. Do not use it against systems without explicit authorization.