当前位置: 首页 > news >正文

锐捷设备批量下发配置telnetlib模块

importtelnetlibimporttime# ===================== 配置区(修改以下内容)=====================DEVICE_LIST=[("192.168.1.13",23,"admin","Huawei@123"),# 思科设备1#("192.168.1.2", 23, "admin", "Cisco@123"), # 思科设备2]# 思科设备要执行的命令(示例)COMMANDS=["conf t",# 过特权模式"vlan 10",# 配置"show vlan",# 查看配置]CONNECT_TIMEOUT=10CMD_WAIT_TIME=2# ===================== 核心函数(适配思科设备)=====================deftelnet_cisco_device(host,port,username,password,commands):"""连接思科设备并执行命令,适配思科交互逻辑"""try:tn=telnetlib.Telnet(host,port,timeout=CONNECT_TIMEOUT)print(f"\n开始处理思科设备{host}=============================================================")# 1. 适配思科登录提示符(思科常用 Login: 而非 Username:)# 兼容两种提示符,避免匹配失败try:tn.read_until(b"Login:",timeout=5)# 思科默认登录提示符excepttelnetlib.socket.timeout:tn.read_until(b"Username:",timeout=5)# 兼容部分思科设备的Username提示tn.write(username.encode('utf-8')+b"\n")time.sleep(1)# 2. 输入密码(思科密码提示符为 Password:,和华为一致)tn.read_until(b"Password:",timeout=5)tn.write(password.encode('utf-8')+b"\n")time.sleep(2)# 思科登录后加载配置稍慢,延长等待# 3. 进入特权模式(思科核心:普通模式→特权模式,需enable密码)# 如果设备无需enable密码,注释以下3行tn.write(b"enable\n")# 进入特权模式命令tn.read_until(b"Password:",timeout=5)# enable密码提示符tn.write(password.encode('utf-8')+b"\n")# 输入enable密码(通常和登录密码相同)time.sleep(1)# 4. 设置终端不分页(避免命令结果被截断,思科核心优化)tn.write(b"terminal length 0\n")time.sleep(1)# 5. 批量执行命令forcmdincommands:print(f"执行命令:{cmd}")tn.write(cmd.encode('utf-8')+b"\n")time.sleep(CMD_WAIT_TIME)# 读取结果,忽略乱码,适配思科编码result=tn.read_very_eager().decode('utf-8',errors='ignore')# 过滤掉命令回显(只保留结果)result=result.replace(cmd,"").strip()print(f"结果:\n{result[:800]}...")# 思科结果较长,显示前800字符# 6. 退出并关闭连接tn.write(b"exit\n")tn.close()print(f"思科设备{host}处理完成 ==========================================================\n")exceptExceptionase:print(f"思科设备{host}处理失败:{str(e)}=================================================\n")# ===================== 主程序 =====================if__name__=="__main__":fordeviceinDEVICE_LIST:host,port,username,password=device telnet_cisco_device(host,port,username,password,COMMANDS)print("所有思科设备处理完毕!")
http://www.jsqmd.com/news/145286/

相关文章:

  • Java 异常捕获基础知识:Exception、Error 和 Throwable
  • 2025年技术人才外派公司全攻略:核心误区、能力对比与落地避坑指南
  • 《复利效应》精读笔记
  • 【毕业设计】基于springboot的居民小区物业管理系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • 【毕业季紧急预警:58% 重复率 + 48 小时交稿,我靠这个工具逆天改命!】
  • 【谁懂啊!科研狗的降重血泪史谁能破?】
  • AI 2.0提示工程架构师职业规划:3条发展路径与晋升策略
  • 【客户案例】某大型保险:CMDB纳管之后,如何管住存量盘活增量数据?
  • PINNs分数阶扩散方程的参数反演模型MATLAB代码
  • 计算机Java毕设实战-基于springboot+vue的某零售商经营平台的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 【微电网调度】梯级水光互补系统最大化可消纳电量期望短期优化调度模型附matlab实现
  • 【微电网调度】梯级水光互补系统最大化可消纳电量期望短期优化调度模型附matlab实现
  • 完整教程:FastAPI项目:搭建一个搜索系统,可选不同搜索引擎进行搜索
  • 东方博宜OJ 2557:幂次求和 ← 数位DP
  • 东方博宜OJ 2557:幂次求和 ← 数位DP
  • [idioms from fables] cry wolf, bell the cat, sour grapes
  • 基于GA-BP的电涡流传感器称重系统温度补偿附matlab代码
  • 构建大数据领域数据服务的生态系统
  • shift-register应用案例
  • Kafka Streams实战:轻量级大数据流处理框架
  • 【课程设计/毕业设计】基于springboot的居民小区物业管理系统的设计与实现“物业办公 - 业主服务 - 数据监管” 三位一体的数字化架构【附源码、数据库、万字文档】
  • spring-事务
  • 【课程设计/毕业设计】基于Springboot的特产销售平台设计与实现基于springboot的某零售商经营平台的设计与实现【附源码、数据库、万字文档】
  • 【毕业设计】基于微服务教材征订系统(源码+文档+远程调试,全bao定制等)
  • 基于GA-WNN的电涡流传感器温度补偿附Matlab代码
  • 华为批量下发配置命令使用telnetlib模块
  • 手足口病主要病原体:肠道病毒EV71结构与重组蛋白研究全解析
  • vivo X300 Pro:长焦封神但也有小遗憾
  • 写论文像 “拼乐高”?paperzz 毕业论文功能,把学术创作拆成 “简单题”
  • Python 爬虫实战:某高校场馆预约系统的 ASP.NET 动态状态流逆向分析