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网络编程, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 隐私保护