# 装备数据导出工具 一个基于Go + Wails + React的桌面应用程序,用于抓取游戏TCP包并解析装备数据。 ## 功能特性 - 🎯 **TCP包抓取** - 实时抓取游戏客户端的TCP通信数据 - 🔍 **数据解析** - 自动解析十六进制数据为可读的装备信息 - 📊 **数据可视化** - 现代化的React界面展示装备数据 - 💾 **数据导出** - 支持导出为JSON格式 - 🚀 **高性能** - 基于Go语言的高性能网络处理 ## 技术栈 ### 后端 - **Go 1.21+** - 主要开发语言 - **Wails v2** - 桌面应用框架 - **gopacket** - 网络包抓取 - **zap** - 结构化日志 ### 前端 - **React 18** - 用户界面框架 - **TypeScript** - 类型安全 - **Vite** - 构建工具 - **Ant Design** - UI组件库 ## 快速开始 ### 环境要求 - Go 1.21+ - Node.js 18+ - npm 或 yarn ### 安装步骤 1. **克隆项目** ```bash git clone cd equipment-analyzer ``` 2. **安装后端依赖** ```bash go install github.com/wailsapp/wails/v2/cmd/wails@latest go mod tidy ``` 3. **安装前端依赖** ```bash cd frontend npm install cd .. ``` 4. **开发模式运行** ```bash make dev ``` 5. **构建发布版本** ```bash make release ``` ## 使用说明 ### 1. 启动应用 运行应用后,会看到主界面。 ### 2. 选择网络接口 - 点击"刷新接口"获取可用的网络接口 - 选择包含游戏流量的网络接口(通常是192.168开头的IP) ### 3. 开始抓包 - 点击"开始抓包"按钮 - 启动游戏并登录 - 在游戏中查看装备数据 ### 4. 停止抓包 - 点击"停止抓包"按钮 - 等待数据处理完成 ### 5. 导出数据 - 点击"导出数据"按钮 - 选择保存位置 ## 项目结构 ``` equipment-analyzer/ ├── cmd/ # 应用程序入口 ├── internal/ # 内部包 │ ├── capture/ # 抓包模块 │ ├── parser/ # 数据解析 │ ├── model/ # 数据模型 │ ├── service/ # 业务逻辑 │ ├── config/ # 配置管理 │ └── utils/ # 工具函数 ├── frontend/ # React前端 │ ├── src/ # 源代码 │ ├── dist/ # 构建输出 │ └── package.json # 前端依赖 ├── build/ # 构建产物 ├── go.mod # Go模块 ├── wails.json # Wails配置 └── Makefile # 构建脚本 ``` ## 开发指南 ### 添加新功能 1. **后端功能** - 在`internal/`目录下创建相应的模块 - 在`service/`中实现业务逻辑 - 在`main.go`中绑定到前端 2. **前端功能** - 在`frontend/src/`下创建React组件 - 使用TypeScript确保类型安全 - 遵循Ant Design设计规范 ### 测试 ```bash # 运行单元测试 make test # 运行集成测试 make test-integration # 代码检查 make lint ``` ### 构建 ```bash # 开发构建 make build # 发布构建 make release # 清理构建文件 make clean ``` ## 配置说明 应用会在用户目录下创建配置文件:`~/.equipment-analyzer/config.json` ```json { "app": { "name": "equipment-analyzer", "version": "1.0.0", "debug": false }, "capture": { "default_filter": "tcp and ( port 5222 or port 3333 )", "default_timeout": 3000, "buffer_size": 1600, "max_packet_size": 65535 }, "parser": { "max_data_size": 1048576, "enable_validation": true }, "log": { "level": "info", "file": "equipment-analyzer.log", "max_size": 100, "max_backups": 3, "max_age": 28, "compress": true } } ``` ## 故障排除 ### 常见问题 1. **无法获取网络接口** - 确保以管理员权限运行 - 检查WinPcap/Npcap是否正确安装 2. **抓包失败** - 检查防火墙设置 - 确认网络接口选择正确 - 查看日志文件获取详细错误信息 3. **数据解析失败** - 确认游戏协议格式 - 检查十六进制数据格式 - 查看控制台错误信息 ### 日志文件 应用日志保存在:`logs/equipment-analyzer.log` ## 贡献指南 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 联系方式 - 项目主页:[GitHub Repository] - 问题反馈:[Issues] - 邮箱:team@equipment-analyzer.com --- **注意**: 本工具仅用于学习和研究目的,请遵守相关法律法规和游戏服务条款。