from netmiko import ConnectHandler, NetmikoAuthenticationException, ReadTimeout, ConnectionException, NetMikoTimeoutException from getpass import getpass from pprint import pprint import sys type = "cisco_ios_telnet" host = sys.argv[2] username = "" password = "" # R1 = { # 'device_type':"cisco_ios_telnet", # 'ip':"172.16.20.17", # 'username':"", # 'password':"", # 'port': 23, # # 'password': # # 'secret':'', # } R1 = { 'device_type':type, 'ip':host, 'username':username, 'password':password, 'port': int(sys.argv[3]), # 'password': '', 'secret':'', } R2 = { 'device_type':type, 'ip':host, 'username':username, 'password':password, 'port': int(sys.argv[6]), # 'password': '', 'secret':'', } output = "" check="" # print(sys.argv) try: # print(R1) if 'SRW' in sys.argv[7]: with ConnectHandler(**R1) as connect: # #change mode output += connect.send_command_timing("clear line "+ sys.argv[4], strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=50000) output += connect.send_command_timing("\n" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=50000) output += connect.send_command_timing("connect p"+sys.argv[5] , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=35) output += connect.send_command_timing("\n" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=35) output += connect.send_command_timing("\n" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=35) if "User Name" in output: if "press ENTER key" in output: output += connect.send_command_timing("\n" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=35) output += connect.send_command_timing("cisco" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=35) output += connect.send_command_timing("cisco" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=35) output += connect.send_command_timing("n" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=35) output += connect.send_command_timing("\n" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=35) output += connect.send_command_timing("show inventory" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=0.5, read_timeout=35) connect.disconnect() else: with ConnectHandler(**R1) as connect: # #change mode output += connect.send_command_timing("clear line "+ sys.argv[4], strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=50000) output += connect.send_command_timing("\n" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=50000) connect.disconnect() with ConnectHandler(**R2) as connect1: if "Password" in output: output += connect1.send_command_timing("\n" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=50000) output += connect1.send_command_timing("show inventory" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=50000) if "More" in output: output += connect1.send_command_timing(" " , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=60) output += "===" if "ASA" in output: check = connect1.send_command_timing(" show interface ip brief" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=50000) output+=check while "More" in check: check = connect1.send_command_timing(" " , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=50000) output+=check else: # output+="===" check = connect1.send_command_timing(" show ip interface brief" , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=50000) output+=check while "More" in check: check = connect1.send_command_timing(" " , strip_prompt=False, strip_command=False, delay_factor=400, last_read=1.0, read_timeout=50000) output+=check connect1.disconnect() print(output) except NetmikoAuthenticationException: print("Netmiko Authentication xxError") except NetMikoTimeoutException: print("NetMikoTimeoutException xxError") except ConnectionRefusedError as err: print("Connection Refused xxError") #Connection Refused except ValueError: print("Mode xxError") except ReadTimeout: print("xxError: Read Timeout") except ConnectionException: print("Connection xxError")