发布时间:2019-09-23 17:00:03编辑:auto阅读(1702)
前几天写了一段代码,是用来检查思科设备的端口运行状态的,只是中间有些bug或是存在安全问题,比如密码写在脚本里,对网络不可以达的设备没有进行判断并加以跳过。以下对前两天写的代码进行修改。
#!/usr/bin/python from netmiko import ConnectHandler from netmiko.ssh_exception import NetMikoTimeoutException import time import sys import getpass 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 show(self,cmd): self.output = self.connect.send_command(cmd) for self.line in self.output.split('\n'): if 'line protocol is up' in self.line: print (self.line) 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.show('show int') switch.close() except (EOFError, NetMikoTimeoutException): print ('Can not connect to Device')
上一篇: Python学习笔记整理(一)pytho
下一篇: python paramiko 使用
48611
47603
38400
35619
30068
26793
25797
20684
20426
18825
111°
189°
224°
246°
242°
251°
285°
336°
461°
444°