tejasva-cyber/python-port-scanner
GitHub: tejasva-cyber/python-port-scanner
一个面向学习者的Python多线程TCP端口扫描器,支持Banner抓取和主机名解析,展示了从基础脚本到工程化改进的完整过程。
Stars: 0 | Forks: 0
# Python 端口扫描器


一个使用 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
```
## 输出

## 法律声明
仅在你拥有或获得明确书面许可的系统上使用。
未经授权的端口扫描在《信息技术法 2000》(印度)§66 下属于违法行为。
## 构建工具
Python | socket | threading | queue
2. 运行扫描器
标签:Banner抓取, DNS查询工具, meg, Python, TCP扫描, 主机名解析, 二进制发布, 信息安全, 套接字编程, 开源工具, 插件系统, 无后门, 服务器安全, 端口扫描器, 线程池, 网络安全, 脚本编程, 逆向工具, 隐私保护