# aiDgeScanner
**Repository Path**: galaxy_0/ai-dge-scanner
## Basic Information
- **Project Name**: aiDgeScanner
- **Description**: aiDgeScanner 是一款专为工业网络环境设计的设备发现与管理工具。通过监听 LLDP(Link Layer Discovery Protocol)报文和 UDPDiscovery 协议,能够自动发现网络中的工业交换机、路由器、PLC 等设备,并提供远程管理功能。
- **Primary Language**: Unknown
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-05-10
- **Last Updated**: 2026-05-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# aiDgeScanner - 工业设备网络扫描与管理工具

**一款基于 Electron + Vue 3 + C++ NAPI 的跨平台工业设备网络扫描与管理工具**
[](https://opensource.org/licenses/GPL-2.0)
[](https://github.com)
[](https://www.electronjs.org/)
[](https://vuejs.org/)
## 项目简介
aiDgeScanner 是一款专为工业网络环境设计的设备发现与管理工具。通过监听 LLDP(Link Layer Discovery Protocol)报文和 UDPDiscovery 协议,能够自动发现网络中的工业交换机、路由器、PLC 等设备,并提供远程管理功能。
## 核心特性
### 🎯 智能设备发现
- **LLDP 协议监听**:支持标准 LLDP 报文解析,获取网络拓扑信息
- **UDP 发现协议**:兼容自定义 UDP 发现机制
- **多网卡支持**:灵活选择监听网卡
- **实时更新**:设备状态变更即时通知
### 🔒 远程管理
- **SSH 终端**:内置 SSH 客户端,直接远程操控设备
- **Telnet 支持**:保留 Telnet 连接能力(可隐藏)
- **Web 配置页面**:嵌入式浏览器直接访问设备 Web 管理界面
### 🎨 现代化界面
- **Vue 3 + Composition API**:响应式组件化设计
- **多主题支持**:金桂、竹绿、朗月、沧海、银砾五种主题
- **多语言**:中文/English 国际化支持
- **深色模式**:舒适护眼的深色终端界面
### ⚡ 高性能底层
- **C++ NAPI 插件**:原生性能的数据包捕获与解析
- **异步 I/O**:基于 libpcap/WinPcap 的高效网络抓包
- **跨平台**:Windows/macOS/Linux 一套代码多平台运行
## 系统架构
```mermaid
graph TB
subgraph UI["UI 层 (Vue 3)"]
A[设备列表] --> B[系统日志]
B --> C[SSH终端]
C --> D[浏览器]
end
subgraph IPC["Electron 进程通信"]
E[IPC Bridge]
end
subgraph Main["主进程 (Node.js)"]
F[窗口管理] --> G[SSH2连接]
G --> H[设备扫描器]
end
subgraph Plugin["C++ NAPI 插件"]
I[LLDP解析器] --> J[Packet捕获]
J --> K[设备发现]
end
subgraph System["系统层"]
L[libpcap/Npcap]
end
UI <--> IPC
IPC <--> Main
Main <--> Plugin
Plugin <--> System
```
## 项目结构
```mermaid
graph TD
A[aiDgeScanner] --> B[src/]
A --> C[native/]
A --> D[device/]
A --> E[dist/]
B --> B1[components/]
B1 --> B1a[SSHTerminal.vue]
B1 --> B1b[SettingsModal.vue]
B1 --> B1c[TabbedBrowser.vue]
B --> B2[theme/]
B --> B3[App.vue]
C --> C1[src/]
C1 --> C1a[scanner.cc]
C1 --> C1b[lldp_parser.cc]
C1 --> C1c[packet_parser.cc]
C --> C2[build/]
D --> D1[src/]
D1 --> D1a[lldp/]
D1 --> D1b[protocol/]
```
## 快速开始
### 环境要求
- Node.js >= 18.x
- npm >= 9.x 或 yarn >= 1.x
- Python 3.x(用于 C++ 插件构建)
- Windows 需要安装 [Npcap SDK](https://npcap.com/) 或 WinPcap
### 安装依赖
```bash
npm install --registry=https://registry.npmmirror.com
```
### 构建 C++ 插件
```bash
npm run build-plugin
```
### 开发模式运行
```bash
npm run dev # Vite 开发服务器
npm start # Electron 主进程
```
### 生产构建
```bash
npm run build # 构建 Vue 前端
npm run electron:build:win # 打包 Windows 安装包
```
## 功能演示
### 设备扫描
点击扫描按钮,自动发现网络中的 LLDP 和 UDP Discovery 设备,实时显示在设备列表中。
### 远程 SSH 连接
1. 在设备列表中点击 SSH 按钮
2. 在弹出的登录对话框中输入用户名和密码
3. 连接成功后,SSH 终端将在新标签页中打开
### 主题切换
点击右上角主题选择器,可在以下主题间切换:
- 🌸 金桂飘香(Golden Osmanthus)
- 🎋 翠竹清幽(Bamboo Green)
- 🌙 朗月皎洁(Bright Moon)
- 🌊 碧海晴空(Sea Blue)
- 🪙 流银典雅(Rich Silver)
## 配置文件说明
aiDgeScanner 支持通过设置对话框配置以下参数:
| 参数 | 说明 | 默认值 |
|------|------|--------|
| 监听模式 | LLDP / UDP / LLDP+UDP | both |
| 监听网卡 | 选择抓包的网卡 | 第一个网卡 |
| UDP 端口 | UDP Discovery 监听端口 | 6000 |
| 查询间隔 | 设备查询间隔(秒) | 5 |
## 技术栈
| 层级 | 技术 | 说明 |
|------|------|------|
| 桌面框架 | Electron 39 | 跨平台桌面应用框架 |
| 前端框架 | Vue 3.5 | 渐进式 JavaScript 框架 |
| 构建工具 | Vite 5 | 下一代前端构建工具 |
| UI 终端 | xterm.js | 终端模拟器组件 |
| SSH 客户端 | ssh2 | Node.js SSH2 客户端库 |
| 原生插件 | node-addon-api | C++ 与 Node.js 互操作 |
| 网络抓包 | libpcap/WinPcap | 数据包捕获库 |
| 协议解析 | C++ | LLDP/UDP 协议解析 |
## 开发指南
### 添加新组件
```bash
# 在 src/components/ 下创建新组件
# 例如: src/components/MyComponent.vue
```
### 主题定制
编辑 `src/theme/theme.css` 添加自定义主题变量:
```css
:root {
--primary-color: #0078d4;
--surface-color: #ffffff;
--text-color: #323130;
}
```
### IPC 通信
主进程与渲染进程通过 `preload.js` 暴露的 API 进行通信:
```javascript
// 渲染进程调用
window.electronAPI.sendMessage('openSSH', { hostname: '192.168.1.1' })
// 主进程接收
ipcMain.on('message', (event, message, data) => {
if (message === 'openSSH') {
// 处理 SSH 连接
}
})
```
## License
GNU General Public License v2.0 (GPL-2.0) - 详见 [LICENSE](LICENSE) 文件
## 致谢
- [Electron](https://www.electronjs.org/) - 跨平台桌面应用框架
- [Vue.js](https://vuejs.org/) - 渐进式 JavaScript 框架
- [xterm.js](https://xtermjs.org/) - 终端模拟器
- [ssh2](https://github.com/mscdex/ssh2) - SSH2 客户端库
- [Npcap](https://npcap.com/) - Windows 网络抓包库