brksfrb/port-scanner
GitHub: brksfrb/port-scanner
一个基于 Python 的高性能多线程局域网端口扫描器,配备实时 Tkinter GUI 进度窗口,可在一分钟内完成 65,535 个 IP 的扫描。
Stars: 0 | Forks: 0
# 🔍 LAN 端口扫描器
一个快速、多线程的 LAN 端口扫描器,带有实时 Tkinter 进度窗口。
扫描一系列 `192.168.x.x` 地址的可配置端口,并实时报告开放端口——同时显示在终端和 GUI 日志窗口中。
## 功能特性
- 多线程扫描(可配置线程数)
- 实时 GUI 进度条和可滚动日志窗口
- 对已发现主机进行反向 DNS 主机名解析
- 通过 `colorama` 实现彩色终端输出
- 设计上线程安全
## 环境要求
- Python 3.10+
- `colorama`
安装依赖:
```
pip install colorama
```
## 使用方法
1. 编辑 `scanner.py` 顶部附近的配置块:
```
START_IP = "192.168.1.0"
END_IP = "192.168.1.255"
PORTS = (80, 443, 5000)
NUM_SCANNERS = 200 # thread count — keep ≤ 500 to avoid OS limits
TIMEOUT = 1.0 # seconds per connection attempt
```
2. 运行:
```
python scanner.py
```
进度窗口将自动打开。扫描完成后,窗口将保持打开状态,直到您将其关闭。
## 项目结构
```
.
├── scanner.py # Entry point — Scanner, ScanThread, IPPort
├── log.py # TkinterLogWindow — thread-safe GUI progress window
└── README.md
```
## 性能
为了获得最高效率,请设置 `NUM_SCANNERS = 4000`。在此线程数下,扫描器可以达到约 **~5,000 IPs/秒** 的速度,这意味着对 `192.168.0.0 – 192.168.255.255` 的完整扫描(65,535 个 IP,单端口)可以在 **一分钟内** 完成。
| 线程数 | 速度 | 完整子网扫描 |
|-------------|--------------|------------------|
| 200 | ~250 IPs/s | ~4 分钟 |
| 1000 | ~1,200 IPs/s | ~55 秒 |
| **4000** | **~5,000 IPs/s** | **< 20 秒** |
## 注意事项
- 当前的 IP 构建器仅支持 `192.168.x.x` 子网。调整 `Scanner._build_target_list()` 以支持任意 CIDR 范围。
## 许可证
MIT
标签:DNS枚举, DNS查询工具, Python, Reverse DNS, Tkinter GUI, URL短链接分析, 密码管理, 局域网扫描, 开源扫描器, 插件系统, 无后门, 服务探测, 端口扫描器, 网络安全工具, 自动化运维, 逆向工具, 防御绕过