Python通过telnet批量管理配置华为交换机

news2025/1/16 17:48:57

名称:Python通过telnet批量管理配置华为交换机

测试工具:ensp, Visual Studio Code , Python3.8环境
时间:2023.12.23
个人备注:在NB 项目中,可以批量登录修改交换机配置,以此满足甲方爸爸的无故增加的需求。

1. 脚本需要用到的CVS表格文件

user-cmd.csv   #用于保存需要配置到交换机命令
user-info.csv  #用于保存交换机IP,用户名,密码

2. 下面是表格内容示范

在这里插入图片描述
在这里插入图片描述

3. eSNP 拓扑示例

在这里插入图片描述

4. 脚本文件,需要自己提前下载好对应的模块。

import telnetlib
import time
import getpass
from netmiko.huawei.huawei import HuaweiTelnet
import pandas as pd


# 用法示例
文件路径 = 'user-info.csv'
命令表格= 'user-cmd.csv'
telnet端口 = 23  # 根据实际情况修改端口号
#命令列表 = ['display ip int brief | include Vlan','dis version']
#telnet主机 = '192.168.56.10'
#用户名 = 'admin'
#密码 = 'abc-123'


 ###########交换机 IP,账户,密码调用
def 提取IP账户密码信息(文件路径):
    # 用 pandas 的 read_csv 方法读取 CSV 文件
    表格数据 = pd.read_csv(文件路径)

    # 提取 IP、账户和密码列的数据
    ip列表 = 表格数据['IP'].tolist()
    账户列表 = 表格数据['账户'].tolist()
    密码列表 = 表格数据['密码'].tolist()
    #telnet执行命令(ip列表, telnet端口,命令列表,账户列表,密码列表)
    return ip列表, 账户列表, 密码列表


 ###########交换机命令批量调用
def cmd_list(cmd_pash):
    # 用 pandas 的 read_csv 方法读取 CSV 文件
    cmd_data = pd.read_csv(cmd_pash)

    # 提取 IP、账户和密码列的数据
    input_cmd = cmd_data['命令'].tolist()
    #telnet执行命令(ip列表, telnet端口,命令列表,账户列表,密码列表)
    return input_cmd



def telnet执行命令(主机, 端口, 命令列表,用户名,密码):
    # 创建 Telnet 对象
    连接 = telnetlib.Telnet(主机, 端口, timeout=2)
    # 登录
    连接.read_until(b'Username:', timeout=2)
    连接.write((用户名 + '\n').encode('ascii'))
    连接.read_until(b'Password:', timeout=2)
    连接.write((密码 + '\n').encode('ascii'))
    # 逐个发送命令
    for 命令 in 命令列表:
        连接.write((命令 + '\n').encode('ascii'))
        time.sleep(0.1)
        # 读取输出,注意:在实际使用中,你可能需要根据命令的特定输出来判断是否需要等待更长的时间
        输出 = 连接.read_until(b'prompt', timeout=1).decode('ascii')
        print(输出)

    # 关闭 Telnet 连接
    连接.close()


###############################################################
# 调用函数并传入 CSV 文件的路径
提取IP账户密码信息(文件路径)
cmd_list(命令表格)

cmd_list1 = cmd_list(命令表格)
ip列表, 账户列表, 密码列表 = 提取IP账户密码信息(文件路径)

# 运行脚本,调用CVS > 提取的值给  telnet函数
for ip, 账户, 密码 in zip(ip列表, 账户列表, 密码列表):
    #print(f'IP: {ip}, 账户: {账户}, 密码: {密码}')
    print(f'开始登录:{ip}')
    telnet执行命令(ip, telnet端口,cmd_list1,账户,密码)
    time.sleep(0.1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1331551.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

echarts:设置折线图线条和端点的颜色

1、代码 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Echarts折线图</title> </head> <body> <div id"main" style"width: 600px;height:400px;"></div> <sc…

《成才之路》期刊投稿方式发表论文要求

《成才之路》杂志是国家新闻出版署批准的正规教育类G4期刊&#xff0c;是国家新闻出版署权威认定专业学术期刊。本刊密切关注人才教育与培养的理论和实践&#xff0c;关注人才学研究的前沿问题&#xff0c;特别是各学科教育教学一线的育才新理念、育才新方法、育才新思路&#…

表达式求值的优先级,结合性及隐式类型转化

文章目录 前言一&#xff0c;操作符的属性二、1&#xff0c;表达式求值的优先级1&#xff0c;什么是优先级2&#xff0c;表达式的优先级表格 三、表达式的结合性1&#xff0c;什么是表达式的结合性2&#xff0c;表达式的结合性表格 四&#xff0c;隐式类型转换1&#xff0c;什么…

032 - STM32学习笔记 - TIM基本定时器(一) - 定时器基本知识

032 - STM32学习笔记 - TIM定时器&#xff08;一&#xff09; - 基本定时器知识 这节开始学习一下TIM定时器功能&#xff0c;从字面意思上理解&#xff0c;定时器的基本功能就是用来定时&#xff0c;与定时器相结合&#xff0c;可以实现一些周期性的数据发送、采集等功能&#…

[JS设计模式]Mixin Pattern

Mixin是一个对象&#xff0c;我们可以使用它来为另一个对象或类添加可重用的功能&#xff0c;而无需使用继承。我们不能单独使用mixins:它们的唯一目的是在没有继承的情况下向对象或类添加功能。 假设对于我们的应用程序&#xff0c;我们需要创建多个狗。然而&#xff0c;我们…

JavaWeb笔记之JSP

一、引言 现有问题 在之前学习Servlet时&#xff0c;服务端通过Servlet响应客户端页面&#xff0c;有什么不足之处&#xff1f; 开发方式麻烦&#xff1a;继承父类、覆盖方法、配置Web.xml或注解。 代码修改麻烦&#xff1a;重新编译、部署、重启服务。 显示方式麻烦&#x…

Linux创建macvlan 测试bridge、private和vepa模式

Linux创建macvlan&#xff0c;测试bridge、private和vepa模式 最近在看Docker的网络&#xff0c;看到关于macvlan网络的介绍。查阅了相关资料&#xff0c;记录如下。 参考 1.Linux Macvlan 2.图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN 环境 操…

[THUPC 2024 初赛] 二进制 (树状数组单点删除+单点查询)(双堆模拟set)

题解 题目本身不难想 首先注意到所有查询的序列长度都是小于logn级别的 我们可以枚举序列长度len&#xff0c;然后用类似滑动窗口的方法&#xff0c;一次性预处理出每种字串的所有出现位置&#xff0c;也就是开N个set去维护所有的位置。预处理会进行O(logn)轮&#xff0c;每…

Web前端复习

一、随堂练习 1.小题 margin vanish&#xff1a;border和inline-block都可以形成bfc二维数组转置&#xff1a;res[i] [];函数的不同声明定义&#xff1a; 有变量名字的函数&#xff0c;即便后面声明了同样的&#xff0c;以函数表达式为主&#xff1b;定义&#xff0c;运行。再…

智能优化算法应用:基于北方苍鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于北方苍鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于北方苍鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.北方苍鹰算法4.实验参数设定5.算法结果6.…

RocketMQ实践:确保消息不丢失与顺序性的高效策略

一、使用RocketMQ如何保证消息不丢失&#xff1f; 这个是在面试时&#xff0c;关于MQ&#xff0c;面试官最喜欢问的问题。这个问题是所有MQ都需要面对的一个共性问 题。大致的解决思路都是一致的&#xff0c;但是针对不同的MQ产品又有不同的解决方案。分析这个问题要从以 下几…

YOLOv5涨点技巧:一种新颖的多尺度滑窗注意力,助力小目标和遥感影像场景

💡💡💡本文全网独家改进:提出了一种新颖的多尺度滑窗注意力机制,有效的应用在遥感影像和小目标场景,实现涨点。 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),适合paper !!! �…

数据校园服务管理系统,教育平台可视化界面(教育资源信息化PS文件)

大屏组件可以让UI设计师的工作更加便捷&#xff0c;使其更高效快速的完成设计任务。现分享大数据校园服务管理系统、科技教育平台大数据可视化界面、教育资源信息化大数据分析等Photoshop源文件&#xff0c;文末提供完整资料&#xff0c;供UI设计师们工作使用。 若需其他 大屏…

Leetcod面试经典150题刷题记录 —— 哈希表篇

Leetcod面试经典150题刷题记录 —— 哈希表篇 1. 赎金信2. 同构字符串(按逻辑完整性&#xff0c;分次书写代码)3. 单词规律4. 有效的字母异位词4.1 进阶: 输入字符串包含 unicode 字符 5. 字母异位词分组6. 两数之和7. 快乐数hash集合检测循环隐式链表快慢指针&#xff08;弗洛…

非线性约束的优化问题_序列二次规划算法代码

1. 理论部分 2. 序列二次规划算法代码及解析 3.完整代码 1.理论部分 a.约束优化问题的极值条件 库恩塔克条件(Kuhn-Tucker conditions&#xff0c;KT条件)是确定某点为极值点的必要条件。如果所讨论的规划是凸规划&#xff0c;那么库恩-塔克条件也是充分条件。 &#xff…

JBoss JMXInvokerServlet 反序列化漏洞 CVE-2015-7501 已亲自复现

JBoss JMXInvokerServlet 反序列化漏洞 CVE-2015-7501 已亲自复现 漏洞名称漏洞描述影响版本 漏洞复现环境搭建漏洞利用 修复建议总结 漏洞名称 漏洞描述 在Oracle Rapid Planning 12.1/12.2.2中发现了一个被归类为“严重”的漏洞。受到影响的是一些未知的组件处理中间层。升…

SQL进阶理论篇(二十):什么是SQL注入

文章目录 简介SQL注入的原理SQL注入的实例搭建sqli-labs注入环境实例一&#xff1a;猜测where条件判断查询语句的字段数获取当前数据库和用户信息获取MySQL中的所有数据库名称查询wucai数据库中的所有数据表查询heros数据表中的所有字段参考文献 简介 这节是纯兴趣篇了。 web…

RocketMQ事务消息实现分布式事务

文章目录 简介实现原理实现逻辑 简介 RocketMQ事务消息 RocketMQ在4.3.0版中支持分布式事务消息&#xff0c;这里RocketMQ的事务消息是采用2PC(两段式协议) 补偿机制&#xff08;消息回查&#xff09;的分布式事务功能。提供消息发送与业务落库的一致性。 RocketMQ事务消息&am…

MicroPython的交互式解释器模式 REPL

MicroPython的交互式解释器模式又名REPL&#xff08;read-eval-print-loop&#xff09;&#xff0c;就是一种命令输入交互模式&#xff0c;跟Python的REPL是类似的&#xff0c;就是在命令行直接输入Python代码或表达式执行并打印结果。关于MicroPython的REPL跟通常的Python类似…

电子病历编辑器源码,提供电子病历在线制作、管理和使用的一体化电子病历解决方案

概述&#xff1a; 电子病历是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图表、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的医疗记录,是病历的一种记录形式。 医院通过电子病历以电子化方式记录患者就诊的信息&#xff0c;包括&…