This commit is contained in:
hu xiaotong
2025-07-02 16:12:52 +08:00
commit 0246bc7060
48 changed files with 460639 additions and 0 deletions

223
README.md Normal file
View File

@@ -0,0 +1,223 @@
# 装备数据导出工具
一个基于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 <repository-url>
cd equipment-analyzer
```
2. **安装后端依赖**
```bash
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
---
**注意**: 本工具仅用于学习和研究目的,请遵守相关法律法规和游戏服务条款。