Your Name
44f7fef1f8
v1.0.1: 多拓扑管理、Web SSH终端、扫描进度修复、拓扑连线优化
...
- 修复扫描进度条不动的问题(分4阶段更新进度)
- 新增Web SSH远程终端(xterm.js + WebSocket)
- 新增多拓扑管理(创建/切换拓扑、全局设备池)
- 简化新建拓扑流程(仅需名称,创建后选择设备)
- 修复拓扑Builder设备去重(按IP去重)
- 修复启动时拓扑设备不加载到Builder的问题
- 优化MAC前缀匹配(避免歧义前缀导致错误连线)
- 拓扑连线改为无向(去除箭头)
- 设备详情面板加宽到600px
2026-04-26 13:25:19 +08:00
Your Name
6e1b010c17
feat: 优化拓扑匹配策略,修复环路问题
...
- 禁用端口号匹配策略(策略6),避免产生错误连接和环路
- 保留精确匹配策略:MAC精确匹配、MAC前缀匹配、子网匹配
- 优化虚拟机邻居过滤(过滤9844、9400等虚拟机MAC前缀)
- 实现设备间去重逻辑(同一对设备只保留一条边)
最终拓扑结构:
- 5个节点,4条边
- 防火墙(172.16.8.1) 核心交换机(172.16.8.6)
- 核心交换机(172.16.8.6) 接入交换机(172.16.8.8/9/10)
- 星型拓扑,无环路
2026-04-26 06:16:15 +08:00
Your Name
e2f804ac52
feat: 增强拓扑匹配算法,支持多重匹配策略
...
- 添加5重匹配策略:IP直连、主机名、MAC地址、子网匹配、接口描述
- 实现智能子网匹配:仅当网段只有2台设备时才使用(避免歧义)
- 修复JSON配置文件尾随逗号问题
- 修复devices.json解析错误
- 优化邻居匹配逻辑,提升拓扑连接准确性
修复问题:
- 解决LLDP邻居MAC无法匹配设备的问题
- 解决ARP表解析返回0条记录的问题
- 解决设备之间无法建立拓扑连接的问题
当前成果:
- 5个设备节点正确显示
- 3条拓扑边正确建立(172.16.8.6↔172.16.8.1, 172.16.8.8↔172.16.8.6, 172.16.8.9↔172.16.8.6)
2026-04-26 05:45:00 +08:00
Your Name
6d2323b5b6
feat: enhance H3C LLDP parser to support verbose format with System name and Management address
...
- Add support for LLDP verbose output format (display lldp neighbor-information verbose)
- Parse System name field for accurate device hostname matching
- Parse Management address field for IP-based neighbor identification
- Handle edge cases: endpoint devices without System name (fallback to MAC)
- Handle Port ID as MAC address (not interface name) for endpoint devices
- Add detailed debug logging for LLDP neighbor parsing
- Implement three-level fallback strategy: System name > Management IP > MAC address
This fixes the topology auto-linking issue where only 1 link was created despite having neighbor data.
2026-04-26 03:56:04 +08:00
Your Name
24263a7439
Debug: 增强拓扑构建调试日志和MAC地址标准化
...
- 打印所有设备的MAC地址数据库
- 详细输出每个邻居的匹配过程
- 添加normalizeMAC函数标准化MAC地址格式
- 解决MAC地址格式不一致导致匹配失败的问题
2026-04-26 03:39:01 +08:00
Your Name
4d3b737e2d
Fix: 使用分隔符标记提取单个命令输出
...
- 在Shell模式中插入分隔符标记命令边界
- 解决累积输出包含之前命令回显的问题
- display interface等待8秒,lldp等待3秒
2026-04-26 03:23:28 +08:00
Your Name
87d233659c
Feat: 使用Shell模式执行命令
...
- 实现ExecuteCommands使用Shell模式,在同一个会话中顺序执行
- 解决H3C设备session.Run后EOF断开问题
- 增加cleanCommandOutput清理命令回显和版权信息
- display interface等待5秒,其他命令等待2秒
2026-04-26 03:19:10 +08:00
Your Name
4edc1b67fc
Fix: 清理SSH客户端代码并增加命令延迟到2秒
...
- 移除所有残留的Shell模式代码
- 使用简洁的session.Run模式
- 命令间延迟从500ms增加到2秒,防止H3C速率限制
- 超时时间设置为30秒
2026-04-26 03:11:07 +08:00
Your Name
db161fa3f2
Fix: 使用display interface brief替代ip interface brief
...
- 交换机使用VLAN互联,应该使用display interface brief
- 移除ARP表依赖,直接使用LLDP邻居信息
- 简化命令列表从6个减少到5个
2026-04-26 03:06:15 +08:00
Your Name
c311a570da
Fix: 添加命令间500毫秒延迟防止H3C设备速率限制
...
- 每个SSH命令执行后等待500毫秒
- 解决命令交替返回0字节的问题
2026-04-26 02:45:50 +08:00
Your Name
a9fcb47ef5
Fix: 添加time包导入
2026-04-26 02:43:29 +08:00
Your Name
c34b29d32c
Fix: 增加SSH超时时间和详细日志
...
- 超时从10秒增加到30秒
- 添加每个命令执行的详细日志
- 便于诊断LLDP命令返回0字节的问题
2026-04-26 02:41:36 +08:00
Your Name
c93d75b37d
Debug: 添加screen-length disable命令输出调试
2026-04-26 02:14:11 +08:00
Your Name
af8bf21a46
Debug: 增强H3C防火墙接口输出调试
...
- 输出小于1000字节的完整内容
- 便于诊断防火墙接口解析问题
2026-04-26 02:13:09 +08:00
Your Name
0d92ff8ef0
Fix: 修正H3C解析器输出索引
...
- outputs[4] 是 display lldp neighbor-information
- outputs[5] 是 display arp
- 修正后邻居和ARP表解析正确
2026-04-26 02:05:06 +08:00
Your Name
21326b6731
Fix: 添加screen-length disable命令并恢复SSH客户端
...
- 在H3C命令列表最前面添加screen-length disable
- 恢复SSH客户端为原始简单模式(session.Run)
- 修正解析器输出索引适配新命令列表
2026-04-26 01:58:23 +08:00
Your Name
7e21e60852
Debug: 添加H3C接口输出调试日志
...
- 在解析器中输出display interface原始数据
- 便于诊断接口为空的问题
2026-04-26 01:54:16 +08:00
Your Name
945695d210
Feat: 支持H3C/华为设备分页禁用
...
- 使用Shell模式替代Run模式执行命令
- 自动发送screen-length disable禁用分页
- 清理输出中的命令回显和分页提示
- 解决display interface输出为空的问题
2026-04-26 01:39:01 +08:00
Your Name
096e752459
Feat: 添加详细的MAC地址解析调试日志
...
- 输出邻居MAC解析详情
- 输出每个接口的MAC地址状态
- 输出收集的MAC地址总数
- 帮助诊断为什么MAC地址为空
2026-04-26 01:20:00 +08:00
Your Name
c28c6ad128
Feat: 添加详细调试日志输出拓扑构建过程
...
- 输出每个设备的邻居数量和MAC地址数量
- 输出邻居匹配过程(IP/主机名/MAC)
- 输出匹配失败的详细信息
- 输出创建的连线详情
2026-04-26 01:16:17 +08:00
Your Name
6771858c40
Feat: 支持通过MAC地址进行邻居匹配和拓扑连线
...
- Neighbor模型添加RemoteMAC字段
- Device模型添加MACAddresses字段
- H3C解析器保存邻居MAC地址和设备所有接口MAC
- 拓扑构建支持三层匹配: IP -> 设备名 -> MAC地址
- 即使ARP表获取失败也能通过MAC地址自动连线
2026-04-26 01:08:14 +08:00
Your Name
872ebc0376
Fix: 修复存储文件名和拓扑构建逻辑
...
- 修正存储文件名: network-topology.db -> devices.json
- 移除handleGetDevices中的重复builder重建逻辑
- 移除冗余的调试日志输出
- 统一日志术语: database -> storage
- 确保添加设备时正确更新builder和存储
2026-04-26 00:57:24 +08:00
Your Name
30b05709eb
Fix: 修正H3C ARP表解析器适配真实输出格式
...
- 修正标题行匹配: Type: (带冒号)
- 跳过IP address标题行
- 适配真实ARP表格式: IP MAC VLAN Interface Aging Type
- 正确解析MAC到IP映射
2026-04-26 00:50:27 +08:00
Your Name
4abfd0716e
Fix: 修正H3C接口解析器适配真实输出格式
...
- 支持接口名和状态分两行的格式
- 修正MAC地址正则: hardware address: (不是Hardware address is)
- 修正IP地址正则: Internet address: x.x.x.x/24 (CIDR格式)
- 添加CIDR到子网掩码转换函数
- 支持多种接口类型前缀匹配
2026-04-26 00:49:06 +08:00
Your Name
8b7dbf2886
Fix: 替换SQLite为JSON文件存储,无需CGO支持
...
- 移除go-sqlite3依赖,改用纯Go的JSON文件存储
- 解决Windows上CGO_ENABLED=0导致SQLite无法使用的问题
- 添加线程安全的读写锁保护
- 支持数据持久化,重启后数据不丢失
- 简化存储逻辑,提高可靠性
2026-04-26 00:46:37 +08:00
Your Name
e5e624d72e
Fix: 添加详细调试日志诊断拓扑连线问题
...
- 在拓扑构建时输出每个设备的邻居详情
- 显示邻居的RemoteIP、RemoteDevice、接口信息
- 从数据库加载设备后重建拓扑确保连线正确
- 帮助诊断为什么邻居无法自动连线
2026-04-26 00:33:42 +08:00
Your Name
84724995b8
Fix: 优化H3C ARP表解析和邻居关联
...
- 使用display arp命令(已验证可用)
- ARP命令失败时不影响其他数据采集
- 添加详细日志显示ARP条目数量
- 如果ARP表中找不到IP,使用MAC地址作为邻居标识
- 容错处理:ARP表为空时继续处理邻居信息
2026-04-26 00:20:43 +08:00
Your Name
3c4ede7a59
Fix: 修正H3C LLDP邻居解析,使用ARP表映射MAC到IP
...
- 根据实际输出格式重写解析器
- 添加display arp命令获取MAC-IP映射
- 通过ChassisID(MAC)在ARP表中查找对应IP
- 正确提取本地接口和远程接口信息
- 实现MAC地址到IP地址的自动关联
2026-04-25 23:58:19 +08:00
Your Name
32fadd9a7e
Feat: 添加SQLite数据库持久化和设备列表显示
...
- 使用SQLite存储设备数据,重启后数据不丢失
- 添加 /api/devices 接口获取所有设备
- 前端显示完整的设备列表(含接口数、邻居数)
- 设备添加/扫描后自动刷新列表
- 启动时从数据库加载设备到拓扑构建器
2026-04-25 23:42:02 +08:00
Your Name
95ab5e0fdb
Fix: 修正H3C设备LLDP邻居发现命令
...
- 将 'display lldp neighbor-list' 改为 'display lldp neighbor-information'
- 重写解析函数以适配新命令的输出格式
- 正确提取邻居设备名称、IP、接口信息
2026-04-25 23:20:58 +08:00
Your Name
4dc0b3100f
Feat: 优化拓扑节点显示为'主机名+IP地址'格式
...
- 前端显示两行: 第一行主机名,第二行IP地址
- 增加节点尺寸以适应更多文本
- 启用文本自动换行
- 后端确保主机名不为空
2026-04-25 23:13:36 +08:00
Your Name
3de2668286
Fix: 增强SSH会话管理和错误处理
...
- 添加会话创建重试机制(最多3次)
- 允许部分命令失败而不中断整个扫描
- 改进错误提示和日志输出
- 解决H3C设备LLDP命令会话拒绝问题
2026-04-25 23:00:23 +08:00
Your Name
d0927cbad5
Initial commit: 网络拓扑发现系统
...
- 支持Cisco、华为、H3C、ASA、Linux、Windows设备
- SSH远程采集设备信息
- 自动发现网络拓扑(LLDP/CDP)
- Web可视化界面
- 支持旧版SSH加密算法兼容
2026-04-25 22:35:51 +08:00