发布时间:2019-09-21 10:47:35编辑:auto阅读(1553)
坚持连续Python大战CiscoNetwork。
#!/usr/bin/python from netmiko import ConnectHandler from netmiko.ssh_exception import NetMikoTimeoutException import time import sys import getpass import re import StringIO 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 interfaceInfo(self,cmd): result = self.connect.send_command(cmd) for interface in result.split('\n'): if 'up' in interface: #print interface lines=StringIO.StringIO(interface) data = lines.read() intername = ' '.join(re.findall('^Eth.+\/\d',data)) loopback = ' '.join(re.findall('Loopback[0-9]',data)) interIP = re.findall( '\.'.join(['\d{1,3}']*4),data) if intername: print intername ,':', ''.join(interIP) else: print loopback , ':', ''.join(interIP) def show(self,cmd): result = self.connect.send_command(cmd) lines = StringIO.StringIO(result) data = lines.read() uptime = re.findall('uptime.+',data) id = re.findall('\d{8}',data) soft = re.findall('L3_.+\\.bin',data) print 'Device UPtime:', ''.join(uptime) print 'Device ID:', ''.join(id) print 'Soft Version:',''.join(soft) 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(username,password) switch.CiscoDevice(iplist) switch.gethostname() switch.interfaceInfo('show ip int brief') switch.show('show version') switch.close() except (EOFError, NetMikoTimeoutException): print ('Can not connect to Device')
上一篇: Python Django 初试手记
下一篇: 编程语言经典小例题—Python版【持续
47839
46383
37274
34725
29311
25968
24899
19946
19538
18019
5788°
6410°
5925°
5959°
7062°
5908°
5941°
6435°
6402°
7774°