Ashish27011/python-port-scanner-v1
GitHub: Ashish27011/python-port-scanner-v1
一个基于 Python socket 模块的初学者级 TCP 端口扫描器,支持自定义端口范围扫描并自动生成报告。
Stars: 1 | Forks: 0
# 🔍 Python 端口扫描器 v1.0
一个使用 Python 的 `socket` 模块构建的、适合初学者的 TCP 端口扫描器。
本项目扫描目标主机上用户指定范围的 TCP 端口,并报告所有开放端口。它还会生成扫描报告,并演示了网络安全中使用的基础网络概念。
## 🚀 功能
- TCP 端口扫描
- 用户输入验证
- 可配置的端口范围
- Socket 超时支持
- 开放端口检测
- 报告生成
- 模块化项目结构
- 简单的终端界面
- 重新扫描选项
## 📂 项目结构
```
python-port-scanner-v1/
│
├── banners/
│ └── banner.py
│
├── services/
│ └── service.py
│
├── reports/
│ └── w_report.py
│
├── output/
│ └── report.txt
│
└── main.py
```
## ⚙️ 使用的技术
- Python 3
- Socket 模块
- TCP 网络
## 🖥️ 工作原理
1. 输入目标地址。
2. 输入起始端口。
3. 输入结束端口。
4. 扫描器会检查选定范围内的每个 TCP 端口。
5. 显示开放的端口。
6. 自动生成报告。
## 📄 示例输出
```
Enter Target Address: scanme.nmap.org
Start Port: 20
Last Port: 445
Scanning...
Port 22 is Open.
Port 80 is Open.
Total Checked Ports: 426
Total Open Ports: 2
Report Saved Successfully.
```
## 📁 生成的报告
扫描器会自动创建:
```
output/report.txt
```
示例:
```
Target Address : scanme.nmap.org
Total Checked Ports : 426
Total Open Ports : 2
```
## ⚡ 性能
为了提高扫描速度,每个 socket 都设置了超时:
```
socket.settimeout(0.3)
```
这可以防止扫描器在等待关闭或被过滤的端口时耗费过长时间。
## 📚 我学到了什么
这个项目帮助我理解了:
- Python Socket 编程
- TCP 连接
- 端口扫描
- 输入验证
- 异常处理
- 文件处理
- 模块化编程
- 函数
- 循环
- 报告生成
## ⚠️ 免责声明
本项目仅供教育目的开发。
请仅扫描您拥有或获得测试授权的系统。
## 🚀 未来改进
- 服务检测
- 多线程
- Banner Grabbing
- CSV 导出
- JSON 导出
- 更好的错误处理
- 命令行参数
- 更快的扫描速度
## 👨💻 作者
Ashish Pangavhane
计算机工程专业学生
有志于成为网络安全专业人士
标签:Python, TCP网络编程, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 隐私保护