Andrey-Soares8/DNS-Scanner-Pro
GitHub: Andrey-Soares8/DNS-Scanner-Pro
一款基于 Python Tkinter 的图形化 DNS 子域名枚举工具,通过 wordlist 和多线程并发解析帮助用户在授权范围内高效发现子域名及 DNS 记录。
Stars: 0 | Forks: 0
# DNS Scanner Pro
使用 Python 开发的图形化工具,通过使用 wordlists 进行 DNS 解析来实现**授权的子域名枚举**。
## 目标
创建此项目旨在实践侦察、DNS、Python 自动化、图形用户界面以及并发任务执行等相关概念。
## 功能
- 使用 Tkinter 构建的图形用户界面
- 基于 wordlist 的子域名枚举
- 解析 `A`、`AAAA` 和 `CNAME` 记录
- 使用 `ThreadPoolExecutor` 进行并发执行
- 使用 `queue.Queue` 和 `root.after()` 实现 GUI 的安全更新
- 对输入的域名进行验证和标准化处理
- Wordlist 清理:移除注释、重复项和无效条目
- 提供取消正在进行的扫描的按钮
- 将结果导出为 `.csv` 或 `.txt`
- 在 `dns_scanner.log` 中记录日志
## 应用的技术与概念
- Python 3
- Tkinter
- DNS resolution
- Subdomain enumeration
- Threading
- Queue-based GUI updates
- 输入验证
- 导出 CSV
- Logging
## 安装说明
```
git clone https://github.com/Andrey-Soares8/DNS-Scanner-Pro.git
cd DNS-Scanner-Pro
python -m venv venv
```
在 Windows 上:
```
venv\Scripts\activate
pip install -r requirements.txt
```
在 Linux/macOS 上:
```
source venv/bin/activate
pip install -r requirements.txt
```
## 使用说明
```
python app.py
```
在界面中:
1. 输入目标域名,例如 `example.com`。
2. 选择一个 `.txt` 格式的 wordlist。
3. 确认您已获得测试该域名的授权。
4. 点击 **Iniciar scan**。
5. 如有需要,导出结果。
## Wordlist 格式
每行一个条目:
```
www
mail
api
admin
staging
```
注释将被忽略:
```
# 通用环境
admin
portal
```
## 架构
该项目将核心逻辑与图形用户界面分离开来:
```
scanner_core.py # validação, wordlist, resolução DNS e modelos de dados
app.py # interface Tkinter e controle do scan
```
这种分离有助于测试、维护以及未来的改进。
## 限制
- 该工具不执行激进的 brute force,也不绕过控制机制。
- 结果取决于公共 DNS 解析。
- 将无法找到受私有 DNS 保护的内部记录。
- 即使使用了多线程,过大的 Wordlist 可能仍会耗费较长时间。
## 未来改进
- 支持导入多个 Wordlist
- 通过 wildcard DNS 实现高级去重
- HTML 报告
- 除了 GUI 外增加 CLI 模式
- 增加更多的单元测试
- 使用 PyInstaller 打包
## 道德使用
本项目出于教育和防御目的。未经许可,请勿用于测试第三方域名。
标签:DNS解析, GUI, Python, 子域名枚举, 并发编程, 开源项目, 无后门, 系统安全