Skip to content

xiaojuwa/Automatic-console-configuration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

网络设备自动化助手 v1.2

一个功能强大的Python GUI应用程序,专门用于自动化与网络交换机(特别是中兴、华为、华三等品牌)的串口交互过程。

🆕 v1.2 新特性

🖥️ SecureCRT 风格交互式终端

  • 实时按键捕捉: 直接在终端区域输入,每个按键立即发送到设备
  • 统一交互界面: 移除独立命令输入框,在主终端区域直接交互
  • 智能光标管理: 自动维护输入/输出区域分离,防止误编辑历史输出
  • ANSI 转义码支持: 基本支持设备的颜色和格式控制
  • 特殊按键处理: 支持 Tab 补全、? 帮助、Ctrl+C 中断等

🔐 自动登录功能

  • 智能提示符检测: 自动识别用户名、密码提示符
  • 多设备兼容: 支持华为、中兴、华三等主流设备
  • 可配置响应: 自定义提示符和对应响应
  • 登录状态显示: 实时显示登录进度和结果

🎛️ 双模式操作

  • 交互式模式: SecureCRT 风格的直接终端交互
  • 传统模式: 保持原有的命令输入框方式
  • 无缝切换: 运行时可随时切换操作模式

功能特性

🔌 串口管理

  • 自动检测COM端口: 启动时自动扫描系统中所有可用的COM端口
  • 智能波特率识别: 自动尝试标准波特率列表,识别设备的正确波特率
  • 手动配置: 支持手动选择COM端口和波特率
  • 实时连接状态: 显示连接状态和设备信息

🔍 设备识别

  • 自动厂商识别: 基于设备响应自动识别中兴、华为、华三等厂商
  • 设备信息提取: 自动提取设备型号、版本、主机名等信息
  • 多命令尝试: 使用多种识别命令确保兼容性

⚡ 命令自动化

  • 预制命令序列: 内置常用的设备配置查询命令
  • 自定义序列: 支持创建、编辑、保存自定义命令序列
  • 批量执行: 一键执行完整的命令序列
  • 实时进度: 显示命令执行进度和状态

📝 日志记录

  • 实时输出: 终端风格的实时命令输出显示
  • 自动日志: 自动记录所有交互过程到日志文件
  • 手动保存: 支持将输出内容保存为文本文件
  • 会话管理: 每次连接自动创建独立的会话日志

🎨 用户界面

  • 交互式终端: SecureCRT 风格的专业终端界面
  • 双模式切换: 交互式和传统模式随时切换
  • 实时反馈: 详细的状态提示和错误信息
  • 快捷操作: 支持键盘快捷键和特殊按键
  • 响应式设计: 自适应窗口大小调整

🔧 高级功能

  • 本地回显控制: 可选择本地回显或等待设备回显
  • ANSI 序列处理: 支持基本的颜色和格式控制
  • 智能退格处理: 正确处理设备的退格响应
  • 多线程架构: 后台数据处理不阻塞界面操作

安装说明

环境要求

  • Python 3.7 或更高版本
  • Windows/Linux/macOS 操作系统

安装步骤

  1. 克隆或下载项目

    git clone https://github.com/xiaojuwa/Automatic-console-configuration.git
    cd Automatic-console-configuration
  2. 安装依赖包

    pip install -r requirements.txt
  3. 运行程序

    python main.py

使用指南

1. 连接设备

  1. 选择COM端口

    • 点击"刷新"按钮扫描可用端口
    • 从下拉列表中选择目标COM端口
  2. 设置波特率

    • 点击"自动检测"让程序自动识别波特率
    • 或手动从下拉列表中选择/输入波特率
  3. 配置自动登录(可选)

    • 在"自动登录"区域输入用户名和密码
    • 勾选"启用自动登录"
    • 点击"保存配置"
  4. 建立连接

    • 点击"连接"按钮建立串口连接
    • 连接成功后状态栏显示"已连接"
    • 如启用自动登录,程序会自动完成登录过程

2. 设备识别

  1. 自动识别

    • 连接成功后点击"设备识别"按钮
    • 程序会自动发送识别命令并解析设备信息
  2. 查看信息

    • 设备信息区域会显示识别出的厂商、型号、版本等信息

3. 交互式终端使用

  1. 交互式模式(推荐)

    • 连接成功后,交互式终端自动激活
    • 直接在黑色终端区域输入命令
    • 每个按键立即发送到设备,实现实时交互
    • 支持特殊按键:
      • Tab: 命令补全
      • ?: 命令帮助
      • Ctrl+C: 中断当前操作
      • Backspace: 删除字符
      • Enter: 执行命令
  2. 传统模式

    • 选择"传统"模式切换到原有操作方式
    • 在底部命令输入框输入命令
    • 点击"发送"按钮或按回车键执行
  3. 模式切换

    • 在终端控制面板选择"交互式"或"传统"模式
    • 可随时切换,无需重新连接

4. 执行命令序列

  1. 选择序列

    • 从"命令序列"下拉列表中选择预制的命令序列
    • 查看序列描述和适用厂商信息
  2. 执行命令

    • 点击"执行序列"按钮开始执行
    • 进度条显示执行进度
    • 输出区域实时显示命令和响应
  3. 手动命令

    • 在底部输入框中输入单个命令
    • 按回车键或点击"发送"按钮执行

4. 管理命令序列

  1. 编辑序列

    • 选择要编辑的序列,点击"编辑"按钮
    • 在编辑窗口中修改序列信息和命令列表
  2. 创建新序列

    • 点击"编辑"按钮,在弹出窗口中创建新序列
    • 添加命令、设置延时和描述
  3. 命令管理

    • 支持添加、编辑、删除、排序命令
    • 每个命令可设置执行延时和描述信息

5. 日志管理

  1. 查看输出

    • 所有命令和响应都会在输出区域实时显示
    • 支持自动滚动到最新内容
  2. 保存日志

    • 点击"保存日志"按钮将当前输出保存为文件
    • 自动日志文件保存在logs目录中
  3. 清空输出

    • 点击"清空输出"按钮清除当前显示内容

配置文件

程序会自动创建config.json配置文件,包含以下设置:

{
    "baudrates": [9600, 19200, 38400, 57600, 115200],
    "timeout": 3,
    "device_patterns": {
        "ZTE": ["ZTE", "ZXR", "ZXUN"],
        "Huawei": ["Huawei", "VRP", "HUAWEI"],
        "H3C": ["H3C", "Comware", "HP"]
    },
    "common_prompts": [">", "#", "]", "$", "%"],
    "identification_commands": [
        "display version",
        "show version",
        "show system",
        "display device"
    ],
    "log_directory": "logs",
    "commands_directory": "commands",
    "auto_login": {
        "enabled": false,
        "username": "",
        "password": "",
        "enable_password": "",
        "timeout": 30,
        "prompts": {
            "username": ["Username:", "login:", "User:", "用户名:"],
            "password": ["Password:", "password:", "密码:"],
            "enable": [">"],
            "enable_password": ["Password:", "password:", "密码:"],
            "success": ["#", "]"],
            "more": ["More", "--More--", "---- More ----"]
        }
    },
    "terminal": {
        "local_echo": false,
        "line_ending": "\r\n",
        "font_family": "Consolas",
        "font_size": 10,
        "bg_color": "black",
        "fg_color": "green",
        "auto_scroll": true
    }
}

目录结构

network-device-assistant/
├── main.py                    # 主程序和GUI界面
├── config.py                  # 配置文件管理
├── serial_manager.py          # 串口通信管理
├── device_detector.py         # 设备识别模块
├── command_manager.py         # 命令管理模块
├── auto_login_manager.py      # 自动登录管理器
├── interactive_terminal.py    # 交互式终端模拟器
├── requirements.txt           # 依赖包列表
├── README.md                 # 说明文档
├── config.json               # 配置文件(自动生成)
├── logs/                     # 日志文件目录(自动创建)
└── commands/                 # 命令序列文件目录(自动创建)
    ├── 基本信息查询.json
    ├── 华为基本配置.json
    ├── 中兴基本配置.json
    └── 华三基本配置.json

故障排除

常见问题

  1. 无法检测到COM端口

    • 检查设备是否正确连接
    • 确认驱动程序已正确安装
    • 尝试重新插拔设备
  2. 连接失败

    • 检查COM端口是否被其他程序占用
    • 确认波特率设置正确
    • 检查串口线缆连接
  3. 设备识别失败

    • 确认设备已正确启动
    • 尝试手动发送识别命令
    • 检查设备是否支持标准命令
  4. 命令执行无响应

    • 检查设备连接状态
    • 增加命令执行延时
    • 确认命令语法正确
  5. 交互式终端无法输入

    • 确认已选择"交互式"模式
    • 检查终端区域是否获得焦点
    • 尝试点击终端区域激活
  6. 自动登录失败

    • 检查用户名密码是否正确
    • 确认设备提示符格式
    • 增加登录超时时间
  7. 按键无响应

    • 确认设备连接正常
    • 检查串口是否被其他程序占用
    • 尝试切换到传统模式测试

技术支持

如遇到问题,请检查:

  1. Python版本是否符合要求
  2. 依赖包是否正确安装
  3. 配置文件是否完整
  4. 日志文件中的错误信息

许可证

本项目采用MIT许可证,详见LICENSE文件。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published