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短链接分析, 插件系统, 数据统计, 无后门, 服务探测, 端口扫描, 网络安全, 网络编程, 隐私保护