摘要:本文主要向大家介绍了Python语言与Cisco,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。
本文主要向大家介绍了Python语言与Cisco,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。
以下代码测试单个子网循环的方法:#!/usr/bin/python from netmiko import ConnectHandlerfrom netmiko.ssh_exception import NetMikoTimeoutExceptionfrom IPy import IPimport timeimport sysimport getpassimport reimport io 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 print '[+] Network devices complete all settings!' if __name__ == '__main__': print "[+] This Program is beging done......." #username = raw_input('Username:') #password = getpass.getpass() ipadd = IP('10.0.0.0/30') for ips in ipadd: ipadds = StringIO.StringIO(ips) ipadds = '\n'.join(ipadds).splitlines() for iplist in ipadds: try: switch = CiscoNetwork('admin','Password.123') 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!')如何是多个子网需增加多一层循环,代码更改如下:if __name__ == '__main__': print "[+] This Program is beging done......." #username = raw_input('Username:') #password = getpass.getpass() ipadd = IPSet([IP('10.0.0.0/30'),IP('10.0.1.0/30'),IP('10.0.2.0/30')]) for ips in ipadd: ipadd = StringIO.StringIO(ips) ipadds = '\n'.join(ipadd).splitlines() for ip01 in ipadds: ip02=IP(ip01) for ip03 in ip02: ip03 = StringIO.StringIO(ip03) ip03 = '\n'.join(ip03).splitlines() for iplist in ip03: try: switch = CiscoNetwork('admin','Password.123') 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有所帮助,更多内容请关注职坐标编程语言Python频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号