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

Python与Cisco的事儿之三

之三事儿Python 2023-01-31 06:01:49 526人浏览 独家记忆

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

摘要

   以下代码可以实现登录网络设备后通过show cdp nei 命令查看邻居设备,然后利用拼接的方式来增加描述,最后再写进相对应的网络设备的接口。#!/usr/bin/python from netmiko import Connect

   以下代码可以实现登录网络设备后通过show cdp nei 命令查看邻居设备,然后利用拼接的方式来增加描述,最后再写进相对应的网络设备的接口。

#!/usr/bin/python

from netmiko import ConnectHandler
from netmiko.ssh_exception import NetMikoTimeoutException
import time
import sys
import getpass
import StringIO
import pprint
 

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("#","")
                

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

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.show()
                   switch.configure()
                   switch.close()
                except (EOFError, NetMikoTimeoutException):
                   print ('Can not connect to Device')

   01.png


   02.png

  




--结束END--

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

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

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

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

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

下载Word文档
猜你喜欢
  • 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的事儿之四
       以下代码实现的流程: cdp -->获取相应链接的信息-->自动写进设备相对应的端口--->configure保存-->configure备份到TFTP服务器!#!/usr/bin/python from n...
    99+
    2023-01-31
    之四 事儿 Python
  • Python与Cisco 的事儿
       前几天写了一段代码,是用来检查思科设备的端口运行状态的,只是中间有些bug或是存在安全问题,比如密码写在脚本里,对网络不可以达的设备没有进行判断并加以跳过。以下对前两天写的代码进行修改。#!/usr/bin/python  from...
    99+
    2023-01-31
    事儿 Python Cisco
  • 浅谈Python基础之列表那些事儿
    一、列表的格式 二、列表的相关操作("增"、"删"、"改",“查”) <1> 添加元素 append()通过append可以向列表添加元素。 例: 运行结果: <2> 修改元素("改")...
    99+
    2022-06-02
    Python列表操作 python list列表
  • 聊聊MultipartFile与File的一些事儿
    前言 前段时间碰到了中转文件的需求,需要使用HttpClient中转一下文件,过程为: 在实现这个需求的过程中就用得到了MultipartFile与File,而且我对前一个也不是很...
    99+
    2022-11-12
  • Boltdb学习笔记之三--事务与并发控制
    ...
    99+
    2021-06-02
    Boltdb学习笔记之三--事务与并发控制
  • python之事件驱动与异步IO
      写服务器处理模型的程序时,通常有以下几种模型:  1.每收到一个请求,创建一个新的进程来处理该请求  2.每收到一个请求,创建一个新的线程来处理该请求  3.每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求(协程...
    99+
    2023-01-31
    事件 python IO
  • 星球大战与Python之间的那些事
    Python与星球大战背后的工业光魔 提起Python语言,很多人会想起系统运维、Web开发等工作。很少有人会知道Python也能够用于电影视觉特效的制作,其中就包括了《星球大战》某些电影特效的制作。 星战...
    99+
    2022-06-04
    星球大战 Python
  • Java基础详解之面向对象的那些事儿
    目录一、面向对象的理解二、三大特性2.1 继承(extends):2.2 封装(private):2.3 多态:三、自动装箱与自动拆箱3.1 自动装箱3.2 自动拆箱四、小结一、面向...
    99+
    2022-11-12
  • python基础入门之普通操作与函数(三)
    目录正文操作函数本节主要介绍函数,但是函数是由操作组成的。那么就分为两部,一部分为操作一部分为函数。 正文 py世界中的操作。 操作 if: 在学习任何一门语言中,关系if,要关系另外一件事,那就是if是否只能判断b...
    99+
    2022-06-03
    python类中普通函数 python基础操作 Python 函数
  • python之 * 与** 的区别
    1.计算方面:*表示乘法       **表示指数幂运算 2.作为函数的参数: 1)调用函数时假设有函数 def test(a, b, c) test(*args):*表示传入的参数args是一个元组,把元组中的每一个元素按照次序作为参数...
    99+
    2023-01-30
    区别 python
  • Python+Pygame实现之走四棋儿游戏的实现
    目录导语一、游戏解说二、游戏规则三、环境安装四、代码展示五、效果展示导语 大家以前应该都听说过一个游戏:叫做走四棋儿 这款游戏出来到现在时间挺长了,小时候的家乡农村条件有限,附近也没...
    99+
    2022-11-11
  • Python三数之和的实现方式
    目录三数之和题目描述思路Python3代码三数之和题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c , 使得 a + b + c =...
    99+
    2022-11-11
  • Android开发系列三之窗口的常用事件
    相关阅读: Android开发系列二之窗口Activity的生命周期 Android开发系列一用按钮实现显示时间 设置窗口标题事件和在Activity之间跳转。 新建一个项目...
    99+
    2022-06-06
    事件 android开发 Android
  • 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事务的概念与应用
  • Python 的Tkinter包系列之三:Canvas(画布)
    Python 的Tkinter包系列之三:Canvas(画布) Tkinter 的Canvas(画布)控件具有两个功能,首先它可以用来绘制各种图形(图片),比如直线、弧形、椭圆形、多边形和矩形等,也可以在上面放置图片(graphics)、...
    99+
    2023-10-24
    python 开发语言
  • python学习之对象的三大特性
    在面向对象程序设计中,对象可以看做是数据(特性)以及由一系列可以存取、操作这些数据的方法所组成的集合。编写代码时,我们可以将所有功能都写在一个文件里,这样也是可行的,但是这样不利于代码的维护,你总不希望维护代码前,还需要从头至尾的通读一遍...
    99+
    2023-01-30
    三大 特性 对象
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作