使用Python脚本来获取Cisco设备信息的示例

今天发现一个使用python写的管理cisco设备的小框架tratto,可以用来批量执行命令。

下载后主要有3个文件:

Systems.py 定义了一些不同设备的操作系统及其常见命令。

Connectivity.py 是主要实现功能的代码,其实主要就是使用了python的pexpect模块。

Driver.py是一个示例文件。

[root@safe tratto-master]# cat driver.py
#!/usr/bin/env python
import Connectivity
import Systems
#telnet to a cisco switch
m = Systems.OperatingSystems['IOS']
s = Connectivity.Session("192.168.1.1",23,"telnet",m)
s.login("yourusername", "yourpassword")
# if your need to issue an "enable" command
s.escalateprivileges('yourenablepassword')
s.sendcommand("show clock")
s.sendcommand("show run")
s.logout()

以上就是示例driver.py的内容,使用很简单。

首先选择一个设备系统版本,此例cisco交换机,所以使用了IOS。作者现在写的可以支持的设备系统有:

OperatingSystems = {

  'IOS': CiscoIOS,

  'WebNS': CiscoWebNS,

  'OSX': AppleOSX,

  'SOS': SecureComputingSidewinder,

  'AOS': ArubaOS,

  'OBSD': OpenBSD,

  }

然后填写ip,端口,telnet或者ssh,最后就是上步选择的系统版本。login填上登陆凭证。

s.escalateprivileges是特权凭证。so easy~

以下是我写的一个使用脚本,抓取交换机的一些信息,然后保存到文件。

[root@safe tratto-master]# cat cisco.py
#!/usr/bin/env python
#
# Cisco Switch commands
# By s7eph4ni3
#
import Connectivity
import Systems
m = Systems.OperatingSystems['IOS']
iplist = ['192.168.1.1','192.168.1.2']
cmdlist = ['show ip int brief','show cdp nei detail','show arp','show ver']
for ip in iplist:
  if ip == '192.168.1.1':
    s = Connectivity.Session(ip,23,"telnet",m)
    s.login("", "passwd")
  else:
    s = Connectivity.Session(ip,22,"ssh",m)
    s.login("username", "passwd")
  s.escalateprivileges('enpasswd')
  f = open(ip+'.txt','w+')
  for cmd in cmdlist:
    a = s.sendcommand(cmd)
    f.write(ip+cmd+'\n')
    f.write(a+'\n')
  f.close()
  s.logout()
(0)

相关推荐

  • 利用Python获取赶集网招聘信息前篇

    如何获取一个网站的相关信息,获取赶集网的招聘信息,本文为大家介绍利用python获取赶集网招聘信息的关键代码,供大家参考,具体内容如下 import re import urllib import urllib.request #获取赶集网数据 def begin(url): #要伪装成的浏览器(我这个是用的chrome) headers = ('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,

  • python获取文件版本信息、公司名和产品名的方法

    本文实例讲述了python获取文件版本信息.公司名和产品名的方法,分享给大家供大家参考.具体如下: 该python代码可得到文件版本信息.公司名和产品名.其他的信息都在返回的字典中.具体代码如下: def _getCompanyNameAndProductName(self, file_path): """ Read all properties of the given file return them as a dictionary. """

  • Python中获取对象信息的方法

    当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> type(123) <type 'int'> >>> type('str') <type 'str'> >>> type(None) <type 'NoneType'> 如果一个变量指向函数或者类,也可以用type()判断: >&

  • Python获取服务器信息的最简单实现方法

    本文实例讲述了Python获取服务器信息的最简单实现方法.分享给大家供大家参考.具体如下: 主要核心代码如下: sUrl = 'http://www.163.com' sock = urllib2.urlopen(sUrl) sock.headers.values() 希望本文所述对大家的Python程序设计有所帮助.

  • python使用wmi模块获取windows下硬盘信息的方法

    本文实例讲述了python使用wmi模块获取windows下硬盘信息的方法.分享给大家供大家参考.具体实现方法如下: # -*- coding: utf-8 -*- #import ######################################################################## import os, sys import time import wmi ################################################

  • python获取图片颜色信息的方法

    本文实例讲述了python获取图片颜色信息的方法.分享给大家供大家参考.具体分析如下: python的pil模块可以从图片获得图片每个像素点的颜色信息,下面的代码演示了如何获取图片所有点的颜色信息和每种颜色的数量. from PIL import Image image = Image.open("jb51.gif") image.getcolors() 返回结果如下 复制代码 代码如下: ..., (44, (72, 64, 55, 255)), (32, (231, 208, 14

  • python获取mp3文件信息的方法

    本文实例讲述了python获取mp3文件信息的方法.分享给大家供大家参考.具体如下: 将代码生成.py文件放在目录下运行,可以获取该目录的所有mp3文件的信息,需要使用ID3库 import os, sys from ID3 import * files = os.listdir(os.getcwd()) for f in files: x = os.path.splitext(f) if x[1] == '.mp3': n = x[0].split(' - ') author = n[0] t

  • python实现批量获取指定文件夹下的所有文件的厂商信息

    本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法.分享给大家供大家参考.具体如下: 功能代码如下: import os, string, shutil,re import pefile import codecs, sys import wx import struct #输出中打印Unicode字符 #sys.stdout = codecs.lookup('utf-8')[-1](sys.stdout) def addToDict(theDict,PEfile_Pa

  • Python获取电脑硬件信息及状态的实现方法

    本文以实例形式展示了Python获取电脑硬件信息及状态的实现方法,是Python程序设计中很有实用价值的技巧.分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: #!/usr/bin/env python # encoding: utf-8 from optparse import OptionParser import os import re import json def main(): try: parser = OptionParser(usage="%prog [optio

  • python获取各操作系统硬件信息的方法

    本文实例讲述了python获取各操作系统硬件信息的方法.分享给大家供大家参考.具体如下: 1. windows 使用WMI: (WMI官网地址:http://pypi.python.org/pypi/WMI 或 点击此处本站下载.) import wmi w=wmi.WMI() cpus=w.Win32_Processor() for u in cpus: print 'cpu id:',u.ProcessorId 运行结果如下: cpu id: BFEBFBFF0001067A cpu id:

随机推荐