tejasva-cyber/python-port-scanner

GitHub: tejasva-cyber/python-port-scanner

一个面向学习者的Python多线程TCP端口扫描器,支持Banner抓取和主机名解析,展示了从基础脚本到工程化改进的完整过程。

Stars: 0 | Forks: 0

# Python 端口扫描器 ![Python](https://img.shields.io/badge/Python-3.x-blue) ![License](https://img.shields.io/badge/License-MIT-green) 一个使用 Python 从零构建的多线程 TCP 端口扫描器。 始于一个基础脚本 → 在发现 v1 中的严重缺陷后进行了改进。 ## 版本 | 版本 | 文件 | 描述 | | v1 | Scanner.py | 基础扫描器 — 1024 个原生线程,端口范围 1–1024 | | v2 | scanner2.py | 线程池 + Banner 抓取 + 主机名支持 + 验证 | ## 改进内容 (v1 → v2) - **修复了线程耗尽问题:** v1 同时生成 1024 个线程 → v2 通过 Queue 使用 100 个线程池 - **添加了主机名解析:** 现在可以扫描 `scanme.nmap.org`,而不仅仅是 IP - **添加了 Banner 抓取:** 识别实际运行的服务,而不仅仅是端口名称 - **添加了输入验证:** 不再因错误输入而崩溃 - **添加了道德授权提示:** 扫描前的法律保障 ## 如何运行 ``` # 克隆 repo git clone https://github.com/tejasva-cyber/python-port-scanner.git cd python-port-scanner # 运行 v1 (basic) python Scanner.py # 运行 v2 (enhanced) python scanner2.py ``` ## 输出 ![Scanner Output](https://raw.githubusercontent.com/tejasva-cyber/python-port-scanner/main/Screenshot%202026-03-08%20014452.png) ## 法律声明 仅在你拥有或获得明确书面许可的系统上使用。 未经授权的端口扫描在《信息技术法 2000》(印度)§66 下属于违法行为。 ## 构建工具 Python | socket | threading | queue 2. 运行扫描器
标签:Banner抓取, DNS查询工具, meg, Python, TCP扫描, 主机名解析, 二进制发布, 信息安全, 套接字编程, 开源工具, 插件系统, 无后门, 服务器安全, 端口扫描器, 线程池, 网络安全, 脚本编程, 逆向工具, 隐私保护