SimplePort is a Python-based command-line tool designed to scan open TCP ports on a target host across user-defined ranges. It provides real-time output, attempts to identify common services, and includes built-in safeguards to encourage ethical use.
This project was developed to demonstrate proficiency in:
- Network programming using Python’s
socketmodule - CLI interface development
- Input validation and error handling
- Modular scripting for security tool development
It is ideal for educational environments, cybersecurity training, and safe internal assessments.
| Feature | Description |
|---|---|
| 🔢 Custom Port Ranges | Specify the exact range of ports to scan |
| 📡 Service Detection | Attempts to identify services like SSH, HTTP, FTP based on well-known ports |
| 📟 Real-Time Output | Displays results as each port is scanned |
| 🧰 Robust Error Handling | Handles unreachable hosts, invalid input, and network exceptions |
| ⏱️ Timestamped Reporting | Logs start and end times of scans for analysis or audit trails |
| ⚙️ Cross-Platform | Tested on Windows, Linux, and macOS |
| ✅ Ethical-Use Safeguards | Reminders included to encourage responsible usage only on authorized systems |
- Python 3.x
socketdatetimesys,argparse(if applicable)- Optional: threading (expandable)
python simpleport.py 10.0.0.15 20 80
This will scan all ports between 20 and 80 on the host 10.0.0.15, reporting open ports and services detected.
simpleport.py: Main scanner scriptREADME.md: Basic usage instructionsoverview.md: This document
Michael Twining
📫 michael.twining@outlook.com
🔗 GitHub • LinkedIn
Use this tool only on systems you own or are authorized to scan. Unauthorized scanning may violate laws or service agreements.
This project is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0) license.
You are free to:
- Share — copy and redistribute the material in any medium or format
- Adapt — remix, transform, and build upon the material for any purpose, even commercially
✅ Attribution required: Please credit the original author, include a link to the license, and indicate if changes were made.