Ashish27011/python-port-scanner-v2
GitHub: Ashish27011/python-port-scanner-v2
一个使用Python socket构建的模块化TCP端口扫描器,支持服务检测、输入验证和自动报告生成,帮助用户快速探测目标主机开放端口及运行的服务。
Stars: 1 | Forks: 0
# 🔍 Python 端口扫描器 v2.0
一个使用 Python 的 **socket** 模块构建的模块化 TCP 端口扫描器。
该项目用于扫描目标主机的开放 TCP 端口,识别在这些端口上运行的常见服务,并生成详细的扫描报告。它是作为我学习 Python 和网络安全之旅的一部分而开发的。
## 🚀 功能
- TCP 端口扫描
- 服务检测(SSH、HTTP、HTTPS、FTP、DNS 等)
- 主机名验证
- 输入验证
- 可配置端口范围
- 用于加快扫描速度的 Socket 超时设置
- 自动生成报告
- 模块化项目结构
- 重新扫描选项
## 📂 项目结构
```
python-port-scanner-v2/
│
├── main.py
│
├── scanner/
│ ├── service.py
│ └── validator.py
│
├── reports/
│ └── w_report.py
│
├── utils/
│ └── banner.py
│
└── output/
└── report.txt
```
## ⚙️ 使用技术
- Python 3
- Socket 模块
- TCP 网络
## 🖥️ 工作原理
1. 输入目标主机名或 IP 地址。
2. 输入起始和结束端口。
3. 扫描器验证所有用户输入。
4. 使用 `socket.connect_ex()` 检查每个 TCP 端口。
5. 显示开放的端口。
6. 识别常见服务。
7. 自动保存详细报告。
## 📸 示例输出
```
Enter Target Address: scanme.nmap.org
Start Port: 20
End Port: 1000
Scanning...
22/tcp OPEN SSH
80/tcp OPEN HTTP
Total Checked Ports : 981
Total Open Ports : 2
Report Saved Successfully.
```
## 📄 示例报告
```
Checked Port Report
Target Address : scanme.nmap.org
Total Ports Checked : 981
Total Open Ports : 2
Open Port List
22/tcp OPEN SSH
80/tcp OPEN HTTP
```
## 🧠 实践概念
- Python 函数
- Python 模块
- 字典
- 异常处理
- 文件处理
- 输入验证
- Socket 编程
- TCP 网络
- 端口扫描
- 服务检测
## ⚡ 性能
扫描器使用:
```
socket.settimeout(0.3)
```
来减少等待关闭或被过滤端口的时间,从而使扫描速度显著提升。
## 📈 未来改进
- Banner 抓取
- DNS 解析显示
- 多线程扫描
- 命令行参数
- 导出 CSV
- 导出 JSON
- 进度指示器
- 改进的报告格式
## ⚠️ 免责声明
本项目仅供教育目的使用。
请仅扫描您拥有或获得明确测试权限的系统。
## 👨💻 作者
**Ashish Pangavhane**
- 计算机工程专业本科生
- 有志成为网络安全专家
- 正在学习 Python、网络和道德黑客
⭐ 如果您觉得这个项目有趣,欢迎 fork 或留下一个 star。
标签:Python, Socket编程, URL短链接分析, 插件系统, 数据统计, 无后门, 服务探测, 端口扫描, 网络安全, 网络编程, 隐私保护