iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python与Cisco的事儿之四
  • 142
分享到

Python与Cisco的事儿之四

之四事儿Python 2023-01-31 06:01:24 142人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

   以下代码实现的流程: cdp -->获取相应链接的信息-->自动写进设备相对应的端口--->configure保存-->configure备份到TFTP服务器!#!/usr/bin/python from n

   以下代码实现的流程: cdp -->获取相应链接的信息-->自动写进设备相对应的端口--->configure保存-->configure备份到TFTP服务器!

#!/usr/bin/python

from netmiko import ConnectHandler
from netmiko.ssh_exception import NetMikoTimeoutException
import time
import sys
import getpass
import datetime

class CiscoNetwork():
        def __init__(self,username,passWord):
                 self.username = username
                 self.password = password

        def CiscoDevice(self,iplist):
                 self.device={'device_type':'cisco_iOS',
                              'username':self.username,
                              'password':self.password,
                              'ip':iplist
                             }
                 print('-'*100)
                 print "[+]connect to network device... %s" %(iplist)
                 self.connect = ConnectHandler(**self.device)
                 self.connect.enable()

        def gethostname(self):
                self.hostname = self.connect.find_prompt()
                self.hostname = self.hostname.replace("#","")
                print self.hostname

        def cdpconfig(self):
                self.output = self.connect.send_command('show cdp nei')
                lines = self.output.splitlines()[5:-2]
                #print lines
                hostname = None
                config = []
                for line in lines:
                    words = line.split()
                    if len(words) == 1:
                        hostname = words[0].split('.')[0]
                    elif hostname is None:
                        hostname = words[0].split('.')[0]
                        local = ''.join(words[1:3])
                        remote = ''.join(words[-2:])
                        description = '_'.join((hostname,remote))
                        config.append('interface' + ' '+ local)
                        config.append('description' + ' ' + description)
                        hostname = None
                    else:
                         local = ''.join(words[0:2])
                         remote = ''.join(words[-2:])
                         description = '_'.join((hostname,remote))
                         config.append('interface' + ' '+ local)
                         config.append('description' + ' ' + description)
                         hostname = None
                self.config ='\n'.join(config)
        
        def configure(self):
                configure = self.connect.send_config_set(self.config)
                saveconfigure = self.connect.send_command('write  memory')

        
        def backup(self,tftpip):
                 date = datetime.datetime.now().strftime('%Y-%m-%d')
                 bkhostname   = '_'.join((self.hostname,date))
                 backupcmd    =  'copy running-config tftp:'
                 self.tftpip  =  tftpip
                 bkconf  = '\n'.join((backupcmd,self.tftpip,bkhostname))
                 self.bkconf  = self.connect.send_command(bkconf)

        def close(self):
                if self.connect is not None:
                       self.connect.disconnect()
                       self.connect = None
                       print '[+] Network devices complete all settings!'

if __name__ == '__main__':
        print "[+] This Program is beging done......."
        #username = raw_input('Username:')
        #password = getpass.getpass()
        for iplist in open("/opt/other/ip.txt"):
                try:
                   switch = CiscoNetwork('admin','Password.123')
                   switch.CiscoDevice(iplist)
                   switch.gethostname()
                   switch.cdpconfig()
                   switch.configure()
                   switch.backup('172.16.200.201')
                   switch.close()
                except (EOFError, NetMikoTimeoutException):
                   print ('Can not connect to Device!')

     01.png

--结束END--

本文标题: Python与Cisco的事儿之四

本文链接: https://www.lsjlt.com/news/190353.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python与Cisco的事儿之四
       以下代码实现的流程: cdp -->获取相应链接的信息-->自动写进设备相对应的端口--->configure保存-->configure备份到TFTP服务器!#!/usr/bin/python from n...
    99+
    2023-01-31
    之四 事儿 Python
  • Python与Cisco的事儿之三
       以下代码可以实现登录网络设备后通过show cdp nei 命令查看邻居设备,然后利用拼接的方式来增加描述,最后再写进相对应的网络设备的接口。#!/usr/bin/python from netmiko import Connect...
    99+
    2023-01-31
    之三 事儿 Python
  • Python与Cisco 的事儿之二
    坚持连续Python大战CiscoNetwork。 #!/usr/bin/python  from netmiko import ConnectHandler from netmiko.ssh_exception import NetMi...
    99+
    2023-01-31
    之二 事儿 Python
  • Python与Cisco 的事儿
       前几天写了一段代码,是用来检查思科设备的端口运行状态的,只是中间有些bug或是存在安全问题,比如密码写在脚本里,对网络不可以达的设备没有进行判断并加以跳过。以下对前两天写的代码进行修改。#!/usr/bin/python  from...
    99+
    2023-01-31
    事儿 Python Cisco
  • Python+Pygame实现之走四棋儿游戏的实现
    目录导语一、游戏解说二、游戏规则三、环境安装四、代码展示五、效果展示导语 大家以前应该都听说过一个游戏:叫做走四棋儿 这款游戏出来到现在时间挺长了,小时候的家乡农村条件有限,附近也没...
    99+
    2022-11-11
  • 浅谈Python基础之列表那些事儿
    一、列表的格式 二、列表的相关操作("增"、"删"、"改",“查”) <1> 添加元素 append()通过append可以向列表添加元素。 例: 运行结果: <2> 修改元素("改")...
    99+
    2022-06-02
    Python列表操作 python list列表
  • 聊聊MultipartFile与File的一些事儿
    前言 前段时间碰到了中转文件的需求,需要使用HttpClient中转一下文件,过程为: 在实现这个需求的过程中就用得到了MultipartFile与File,而且我对前一个也不是很...
    99+
    2022-11-12
  • python之事件驱动与异步IO
      写服务器处理模型的程序时,通常有以下几种模型:  1.每收到一个请求,创建一个新的进程来处理该请求  2.每收到一个请求,创建一个新的线程来处理该请求  3.每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求(协程...
    99+
    2023-01-31
    事件 python IO
  • 星球大战与Python之间的那些事
    Python与星球大战背后的工业光魔 提起Python语言,很多人会想起系统运维、Web开发等工作。很少有人会知道Python也能够用于电影视觉特效的制作,其中就包括了《星球大战》某些电影特效的制作。 星战...
    99+
    2022-06-04
    星球大战 Python
  • 【大虾送书第四期】《Python之光:Python编程入门与实战》
    目录 ✨写在前面 ✨本书亮点 ✨强力推荐 ✨文末福利       🦐博客主页:大虾好吃吗的博客      🦐专栏地址:免费送书活动专栏地址 写在前面         作为一种极其流行...
    99+
    2023-08-31
    python 开发语言 编辑器 原力计划
  • Java基础详解之面向对象的那些事儿
    目录一、面向对象的理解二、三大特性2.1 继承(extends):2.2 封装(private):2.3 多态:三、自动装箱与自动拆箱3.1 自动装箱3.2 自动拆箱四、小结一、面向...
    99+
    2022-11-12
  • kubernetes实践之四十:Pod的升级与回滚
    一:Deployment的升级举例: 点击(此处)折叠或打开...
    99+
    2023-06-04
  • python之 * 与** 的区别
    1.计算方面:*表示乘法       **表示指数幂运算 2.作为函数的参数: 1)调用函数时假设有函数 def test(a, b, c) test(*args):*表示传入的参数args是一个元组,把元组中的每一个元素按照次序作为参数...
    99+
    2023-01-30
    区别 python
  • 【山河送书第四期】:《Python之光:Python编程入门与实战》参与活动,免费送书五本!!
    【山河送书第四期】:《Python之光:Python编程入门与实战》参与活动,免费送书五本!! 书本简介本书亮点配套丰富购买链接参与方式往期赠书回顾: 书本简介 作为一种极其流行的编程...
    99+
    2023-08-31
    python 开发语言
  • python之类与类之间的关系
    在我们的世界中事物和事物之间总会有一些联系.   在面向对象中. 类和类之间也可以产生相关的关系 1. 依赖关系   执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻的. 随时可以更换另外一...
    99+
    2023-01-30
    关系 python
  • Python之is与==的区别
    首先看几个例子:# -*-coding=utf-8 -*- a="Hello Python" b="Hello Python" print (a is b)    #结果是:True print (a == b)    #结果是:True ...
    99+
    2023-01-31
    区别 Python
  • SQL之Mysql事务的概念与应用
    代码分享:https://github.com/mtdgclub/PDO 具体查看根目录下的pdoAffair.php文件代码 2. 事务的四大特性 原子性:事务必须是一个不可分割的整体,要么做完,要么不做。 一致性:事务...
    99+
    2014-05-05
    SQL之Mysql事务的概念与应用
  • Java那点儿事之Map集合不为人知的秘密有哪些
    目录前言一、Map二、HashMap的基本概念三、HashMap集合的基本方法与使用四、HashMap集合的遍历五、HashMap集合的综合案例六、总结前言 上期我们说到了Colle...
    99+
    2022-11-12
  • Python之Pygame的Event事件模块
    目录Pygame的Event事件模块 事件类型事件处理方法 处理键盘事件处理鼠标事件Pygame的Event事件模块 事件(Event)是 Pygame 的重要模...
    99+
    2023-05-14
    Python Pygame的Event事件模块 Pygame Event事件模块
  • python str与bytes之间的转
      # bytes object   b = b"example"   # str object   s = "example"   # str to bytes   bytes(s, encoding = "utf8")   # b...
    99+
    2023-01-31
    python str bytes
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作