Jamalludeen/python-port-scanner-app

GitHub: Jamalludeen/python-port-scanner-app

一个基于 Tkinter 的轻量级 GUI 端口扫描器,用于快速检测目标主机的开放端口及可选的横幅信息。

Stars: 1 | Forks: 0

# Python 端口扫描应用 基于 Tkinter 实现的轻量级 GUI 端口扫描器。代码组织为一个小型包,将扫描逻辑、验证、工具函数和 GUI 分离。 ## 运行 通过以下命令启动 GUI: ``` python main.py ``` 显示启动器版本: ``` python main.py --version ``` 或使用旧版包装器: ``` python portScanner.py ``` ## 项目结构 - `portscanner/` - 包模块 - `gui.py` - Tkinter 界面 (`PortScannerApp`) - `scanner.py` - 扫描逻辑 (`PortScanner`, `scan_single_port`) - `validators.py` - 主机/IP 验证辅助函数 - `utils.py` - 小工具函数(导出、剪贴板) - `tests/` - 使用 Python `unittest` 的单元测试 - `run_tests.py` - 便捷测试运行器 - `main.py` - 现代入口点 - `portScanner.py` - 旧版兼容包装器 ## 测试 运行单元测试: ``` python run_tests.py ``` 在迭代过程中也可以针对特定测试文件运行: ``` python run_tests.py tests/test_banner.py ``` 有用的标志: ``` python run_tests.py --failfast python run_tests.py -q python run_tests.py --pattern=banner ``` GUI 帮助对话框中也提到了启动器版本标志和针对性的测试运行模式,以便从应用内部快速找到它们。 CI 通过 GitHub Actions 配置,运行共享的 `run_tests.py` 入口点。 ## 横幅检测 GUI 提供了一个“检测横幅”复选框,它会尝试从扫描过程中发现的任何开放 TCP 服务读取一小段横幅。这是一个尽力而为的操作,超时时间较短,可能不适用于所有服务。 当你希望快速获取服务横幅(例如 HTTP、SMTP、FTP 或自定义文本横幅)并在 UI 中与结果一起显示时,请启用此选项。 ## 开发说明 - 扫描逻辑暴露了基于回调的 API (`PortScanner.scan_range`),因此 GUI 可以保持响应;回调应将 UI 更新调度到 Tk 主线程(GUI 当前使用 `root.after` 实现)。 - GUI 标题在扫描期间反映当前活动目标,扫描完成后显示开放端口数量。 - 拒绝非常大的扫描范围以减少意外过载。 - 测试使用本地临时服务器来验证端口检测和回调行为。 ## 许可证 MIT # 端口扫描器 一个基于 Tkinter 构建的简单 GUI 端口扫描器。 使用方式: - 运行 `python3 portScanner.py`。 - 输入目标主机/IP 并调整设置。 - 使用 `扫描`、`停止`、`导出` 和 `复制` 按钮。 注意: - 本项目仅用于学习和小规模扫描。请负责任地使用。
标签:Banner抓取, GUI工具, IP扫描, Python, TCP扫描, Tkinter, URL发现, 主机探测, 二进制发布, 云存储安全, 安全检测, 开源工具, 情报分析, 插件系统, 数据统计, 无后门, 端口扫描, 系统独立性, 网络安全, 网络扫描, 网络诊断, 辅助工具, 逆向工具, 隐私保护