一个现代化的多功能实用工具箱,集成图标生成、网络扫描等常用工具,支持Windows和Linux。
- 🖼️ 支持多种图片格式(PNG, JPG, BMP, GIF)转ICO
- 📏 多尺寸ICO生成(16x16 到 256x256)
- 👁️ 实时图片预览和信息显示
- ⚡ 一键全选/清空尺寸选择
- 🎯 现代化深色主题界面
- 🌐 自动检测本机IP和网络段
- ⚡ 快速并发扫描局域网内活跃主机
- 🔌 检测常用端口(SSH, HTTP, Moonraker, API等)
- 📊 实时显示扫描进度和结果
- 💻 显示主机名和开放端口详情
- ⏸️ 支持随时停止扫描
- Python 3.13+ (Windows) 或 Python 3.10+ (Linux)
- uv 包管理器
# 克隆项目
git clone https://github.com/cuihuir/utilbox.git
cd utilbox
# 运行安装脚本(自动安装 uv 和依赖)
bash install.sh
# 运行程序
python utilbox.py# 克隆项目
git clone https://github.com/cuihuir/utilbox.git
cd utilbox
# 安装 uv(如果未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 安装系统依赖(Linux)
sudo apt install python3-tk fonts-noto-cjk
# 安装 Python 依赖
uv sync
# 运行主程序
python utilbox.py
# 或者使用 uv run
uv run python utilbox.py# 测试图标生成器
uv run python src/icon_generator.py
# 测试局域网扫描器
uv run python src/lan_scanner.py
# 测试核心功能(无需GUI)
uv run python tests/test_converter.py
uv run python tests/test_scanner.py# 1. 安装开发依赖
uv sync --extra dev
# 2. 运行打包脚本
uv run python scripts/build.py
# 3. 可执行文件位置
# dist/toolbox.exe推荐:直接运行源码
由于 Python 3.13 使用 Tcl/Tk 9.0,而大多数 Linux 发行版仍使用 Tcl/Tk 8.6,打包后的程序可能无法在其他机器上运行。
# 推荐方式:直接运行源码
python utilbox.py
# 优点:
# - 兼容性好,使用系统的 Tcl/Tk 版本
# - 无需打包,启动快
# - 方便调试和修改可选:打包为单文件
如果需要打包,建议使用系统 Python(而非 uv 的虚拟环境):
# 1. 使用系统 Python 创建虚拟环境
python3 -m venv .venv-system
source .venv-system/bin/activate
# 2. 安装依赖
pip install customtkinter pillow pyinstaller
# 3. 打包
python scripts/build.py
# 4. 测试
./dist/toolbox
# 注意:打包后的程序只能在相同或相近的系统版本上运行# 1. 安装系统依赖
sudo apt install python3-tk
# 2. 安装开发依赖
uv sync --extra dev
# 3. 运行打包脚本
uv run python scripts/build.py
# 4. 可执行文件位置
# dist/toolbox
# 注意:打包后的程序需要目标机器安装Tcl/Tk库
# 在目标机器上运行:sudo apt install libtcl9.0 libtk9.0启动程序后,在主界面选择需要使用的工具:
- 图标生成器 - 转换图片为ICO格式
- 局域网扫描器 - 扫描局域网设备
- 点击"选择图片文件"按钮
- 查看图片信息和预览
- 选择需要的ICO尺寸(可使用全选/清空)
- 点击"转换为ICO"并选择保存位置
- 自动检测本机IP和网络段
- 可手动修改网络段(如 192.168.1.0/24)
- 点击"开始扫描"
- 实时查看扫描结果(IP、主机名、开放端口)
- 扫描完成后查看统计信息
| 技术 | 说明 |
|---|---|
| GUI框架 | CustomTkinter - 现代化跨平台界面 |
| 图片处理 | Pillow (PIL) - 强大的图像处理库 |
| 网络扫描 | socket + concurrent.futures - 高性能并发扫描 |
| 打包工具 | PyInstaller - 打包为独立可执行文件 |
| 包管理 | uv - 极速Python包管理器 |
utilbox/
├── utilbox.py # 主程序启动入口
├── src/ # 源代码目录
│ ├── __init__.py
│ ├── main_gui.py # 主界面
│ ├── icon_generator.py # 图标生成器页面
│ ├── lan_scanner.py # 局域网扫描器页面
│ ├── converter.py # 图片转换核心逻辑
│ └── scanner_core.py # 网络扫描核心逻辑
├── scripts/ # 脚本文件
│ └── build.py # Windows打包脚本
├── tests/ # 测试文件
│ ├── test_converter.py
│ └── test_scanner.py
├── docs/ # 文档和截图
│ └── images/
│ ├── main.png
│ └── scanner.png
├── examples/ # 示例图片
├── .gitignore
├── .python-version
├── LICENSE
├── README.md
├── pyproject.toml
└── uv.lock
默认扫描端口在 scanner_core.py 中定义:
DEFAULT_PORTS = {
22: "SSH",
80: "HTTP",
81: "HTTP-Alt",
7125: "Moonraker",
9080: "Device-API",
50051: "Voice-API"
}可根据需要修改端口列表。
- WSL环境: 需要X11服务器(WSLg或VcXsrv)才能运行GUI
- Windows环境: 可直接运行或打包成exe
- 扫描速度: 取决于网络环境和主机数量,通常几秒到几十秒
- 防火墙: 某些设备可能因防火墙设置无法被扫描到
- 权限: 扫描功能无需管理员权限
- 安装WSLg(Windows 11自带)
- 或安装X11服务器(如VcXsrv)
- 或直接在Windows上运行
- 确保已安装开发依赖:
uv sync --extra dev - 检查PyInstaller版本是否兼容
- Windows: 确保在Windows环境下打包
- Linux: 确保已安装
python3-tk
- 错误:
libtcl9.0.so: cannot open shared object file - 解决:在目标机器上安装Tcl/Tk库
sudo apt install libtcl9.0 libtk9.0
- 或者使用
--onedir模式打包(会生成文件夹而非单文件)
- 检查防火墙设置
- 确认网络段配置正确(如 192.168.1.0/24)
- 某些设备可能禁用了端口响应
- 尝试增加扫描超时时间
- 确认图片格式支持(PNG, JPG, BMP, GIF)
- 检查图片文件是否损坏
- 确保有足够的磁盘空间
- 添加更多实用工具
- 支持自定义端口扫描
- 批量图片转换
- 扫描结果导出(CSV/JSON)
- 多语言支持
- 主题切换(亮色/暗色)
- 配置文件保存用户偏好
欢迎提交Issue和Pull Request!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
- 项目主页: https://github.com/cuihuir/utilbox
- 问题反馈: Issues
如果这个项目对你有帮助,请给个Star支持一下!
Built with ❤️ using Python and CustomTkinter

