Post Views: 976
#SCRIPT 1:
import telnetlib
HOST = "192.168.32.200"
user = "admin"
password = "cisco"
tn123 = telnetlib.Telnet(HOST)
tn123.read_until(b"Username: ")
tn123.write(user.encode("utf8") + b"\n")
tn123.read_until(b"Password: ")
tn123.write(password.encode("utf8") + b"\n")
#telnet established
tn123.write(b"show clock\n")
print(tn123.read_all().decode("utf8"))
#SCRIPT 2:
import telnetlib
HOST = "192.168.32.200"
user = "admin"
password = "cisco"
tn123 = telnetlib.Telnet(HOST)
tn123.read_until(b"Username: ")
tn123.write(user.encode() + b"\n")
tn123.read_until(b"Password: ")
tn123.write(password.encode() + b"\n")
#telnet established
tn123.write(b"show clock\n")
print(tn123.read_all().decode())
#SCRIPT 3:
import telnetlib
HOST = "192.168.32.200"
user = "admin"
password = "cisco"
tn123 = telnetlib.Telnet(HOST)
tn123.read_until(b"Username: ")
tn123.write(user.encode("utf-8") + b"\n")
tn123.read_until(b"Password: ")
tn123.write(password.encode("utf-8") + b"\n")
#telnet established
tn123.write(b"show clock\n")
print(tn123.read_all().decode("utf-8"))
#SCRIPT 4:
import telnetlib
HOST = "192.168.32.200"
user = "admin"
password = "cisco"
tn123 = telnetlib.Telnet(HOST)
tn123.read_until(b"Username: ")
tn123.write(user.encode("ascii") + b"\n")
tn123.read_until(b"Password: ")
tn123.write(password.encode("ascii") + b"\n")
#telnet established
tn123.write(b"show clock\n")
print(tn123.read_all().decode("ascii"))
#SCRIPT 5:
import getpass
import telnetlib
HOST = "192.168.32.200"
user = "admin"
password = "cisco"
tn = telnetlib.Telnet(HOST) # to open telnet connection
tn.read_until(b"Username: ")
tn.write(user.encode('utf8') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('utf8') + b"\n")
tn.write(b"enable\n") # \n represents end of line
tn.write(b"cisco\n")
tn.write(b"term len 0\n")
tn.write(b"sh run\n")
tn.write(b"conf t\n")
tn.write(b"int loop 0\n")
tn.write(b"ip address 1.1.1.1 255.255.255.255\n")
tn.write(b"int loop 1\n")
tn.write(b"ip address 2.2.2.2 255.255.255.255\n")
tn.write(b"router ospf 1\n")
tn.write(b"network 0.0.0.0 255.255.255.255 area 0\n")
tn.write(b"end\n")
tn.write(b"exit\n") # to close the connection
print(tn.read_all().decode('utf8'))
#SCRIPT 6:
import getpass
import telnetlib
HOST = "172.16.221.106"
user = input("Enter your telnet username: ")
password = getpass.getpass()
tn = telnetlib.Telnet(HOST) # to open telnet connection
tn.read_until(b"Username: ")
tn.write(user.encode('utf8') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('utf8') + b"\n")
tn.write(b"enable\n") # \n represents end of line
tn.write(b"cisco\n")
tn.write(b"term len 0\n")
tn.write(b"sh run\n")
tn.write(b"conf t\n")
tn.write(b"int loop 0\n")
tn.write(b"ip address 1.1.1.1 255.255.255.255\n")
tn.write(b"int loop 1\n")
tn.write(b"ip address 2.2.2.2 255.255.255.255\n")
tn.write(b"router ospf 1\n")
tn.write(b"network 0.0.0.0 255.255.255.255 area 0\n")
tn.write(b"end\n")
tn.write(b"exit\n") # to close the connection
print(tn.read_all().decode('utf8'))
#SCRIPT 7:
import getpass
import telnetlib
HOST = "192.168.32.200"
user = "admin"
password = "cisco"
tn = telnetlib.Telnet(HOST)
tn.read_until(b"Username: ")
tn.write(user.encode("utf8") + b"\n")
tn.read_until(b"Password:")
tn.write(password.encode("utf8") + b"\n")
tn.write(b"conf t\n")
tn.write(b"hostname SWITCH-PYTHON\n")
tn.write(b"exit\n")
tn.write(b"terminal length 0\n")
tn.write(b"show run\n")
tn.write(b"exit\n")
#Save method
readoutput = tn.read_all().decode("utf8")
saveoutput = open("backup_config_of_" + HOST + ".txt", "w")
saveoutput.write(str(readoutput))
saveoutput.close() #closes the opened file. A closed file cannot be read or written any more.
tn.close()
#SCRIPT 8:
create nornirscript1.py using NETMIKO
from nornir import InitNornir
from nornir.plugins.tasks.networking import netmiko_send_command
from nornir.plugins.functions.text import print_result
nr = InitNornir("config.yml")
result = nr.run(netmiko_send_command, command_string="sh ip int brief")
print_result(result)
#SCRIPT 9:
create nornirscriptt2.py
from nornir import InitNornir
from nornir.plugins.tasks.networking import napalm_get
from nornir.plugins.functions.text import print_result
nr = InitNornir("config.yml")
result = nr.run(napalm_get,getters=['get_facts'])
print_result(result)
#SCRIPT 10:
create nornirscript1.py using NETMIKO
from nornir import InitNornir
from nornir.plugins.tasks.networking import netmiko_send_command
from nornir.plugins.functions.text import print_result
nr = InitNornir("config.yml")
result = nr.run(netmiko_send_command, command_string="sh ip int brief")
print_result(result)
#SCRIPT 11:
from napalm import get_network_driver
driver = get_network_driver('ios')
#optional_args123 = {'secret': 'cisco'} #cisco is the enable password #dictionary
ios123 = driver('192.168.32.200', 'admin123', 'cisco', optional_args=optional_args123)
ios123.open()
print(dir(ios123))
ios123.close()
#SCRIPT 12:
from napalm import get_network_driver
#import json
driver123 = get_network_driver('ios')
optional_args123 = {'secret': 'cisco'}
ios123 = driver123('192.168.32.200', 'admin', 'cisco',optional_args=optional_args123)
ios123.open()
#start your code here
output123 = ios123.get_arp_table()
for result123 in output123:
print(result123)
#stop your code here
#dump123 = json.dumps(output123, sort_keys=True, indent=4) #arguments
#print(dump123)
#with open('arp.txt', 'w') as f:
#f.write(dump123)
ios123.close()
#SCRIPT 13:
import json
from pyntc import ntc_device as NTC
ios123 = NTC(host='192.168.32.200', username='admin', password='cisco', device_type='cisco_ios_ssh')
ios123.open()
ios_output = ios123.facts
print (json.dumps(ios_output, indent=4))
ios123.close()
#SCRIPT 14:
from pyntc import ntc_device as NTC
ios123 = NTC(host='192.168.32.132', username='admin', password='cisco', device_type='cisco_ios_ssh')
ios123.open()
ios123.config("logging host 2.2.2.2")
ios_output = ios123.show("show run | i logging")
print (ios_output)
ios123.close()
#SCRIPT 15:
import telnetlib
tn123 = telnetlib.Telnet(b"192.168.32.200")
tn123.read_until(b"Username: ")
tn123.write(b"admin" + b"\n")
tn123.read_until(b"Password: ")
tn123.write(b"cisco" + b"\n")
#telnet established
tn123.write(b"show clock\n")
print(tn123.read_all().decode("utf8"))
#SCRIPT 16:
from netmiko import ConnectHandler
#connection = Netmiko(host='10.1.1.1', username='admin', password='cisco', device_type='cisco_ios')
cisco_device = { #cisco_devices = called as classes
'device_type': 'cisco_ios',
'ip': '192.168.32.200',
'username': 'admin',
'password': 'cisco',
'port': 22,
'secret': 'cisco123', #no username admin pri 15 // # enable secret cisco123
'verbose':True,
}
connection123 = ConnectHandler(**cisco_device) #connection123 = object, ** = dictionary used to call function
prompt = connection123.find_prompt()
print(prompt)
if '>' in prompt:
connection123.enable()
#mode = connection123.check_enable_mode()
#print(mode)
output = connection123.send_command('show ip int br')
print(output)
mode = connection123.check_config_mode()
#print(mode)
if not mode:
connection123.config_mode()
#mode = connection123.check_config_mode()
#print(mode)
output = connection123.send_command('username joy password python123')
output = connection123.send_command('do show run | i user')
print(output)
#SCRIPT 17:
from netmiko import ConnectHandler
with open('devices.txt') as f123:
devices = f123.read().splitlines()
#print(devices)
device_list = list()
#print(device_list)
for ip in devices:
cisco_device = {
'device_type': 'cisco_ios',
'ip': ip,
'username': 'admin',
'password': 'cisco',
'port': 22,
'secret': 'cisco', #this is the enable password
'verbose': True
}
device_list.append(cisco_device)
#print(device_list)
for device in device_list:
print('Connecting to ' + device['ip'])
connection123 = ConnectHandler(**device) #create connection object
print('Entering enable mode ...')
connection123.enable()
file = input('Enter configuration file (use
a valid path) for ' + device['ip'] +':') #enter the configuration file
print('Running commands from file:', file, 'to device:', device['ip'])
output = connection123.send_config_from_file(file)
print(output)
connection123.disconnect()
#SCRIPT 18:
from netmiko import Netmiko
from getpass import getpass
net_connect = Netmiko(
"192.168.32.200",
username="admin1234",
password=getpass(),
device_type="cisco_ios",
)
print(net_connect.find_prompt())
net_connect.disconnect()
#SCRIPT 19:
#!/usr/bin/env python
"""
Use processes and Netmiko to connect to each of the devices. Execute
'show version' on each device. Use a queue to pass the output back to the parent process.
Record the amount of time required to do this.
"""
from __future__ import print_function, unicode_literals
from multiprocessing import Process, Queue
from datetime import datetime
from netmiko import ConnectHandler
from my_devices import device_list as devices
def show_version_queue(a_device, output_q):
"""
Use Netmiko to execute show version. Use a queue to pass the data back to
the main process.
"""
output_dict = {}
remote_conn = ConnectHandler(**a_device)
hostname = remote_conn.base_prompt
output = ("#" * 80) + "\n"
output += remote_conn.send_command("show ip int br | ex unass") + "\n"
output += ("#" * 80) + "\n"
output_dict[hostname] = output
output_q.put(output_dict)
def main():
"""
Use processes and Netmiko to connect to each of the devices. Execute
'show version' on each device. Use a queue to pass the output back to the parent process.
Record the amount of time required to do this.
"""
start_time = datetime.now()
output_q = Queue(maxsize=20)
procs = []
for a_device in devices:
my_proc = Process(target=show_version_queue, args=(a_device, output_q))
my_proc.start()
procs.append(my_proc)
# Make sure all processes have finished
for a_proc in procs:
a_proc.join()
while not output_q.empty():
my_dict = output_q.get()
for k, val in my_dict.items():
print(k)
print(val)
print("\nElapsed time: " + str(datetime.now() - start_time))
if __name__ == "__main__":
main()
#SCRIPT 20:
#!/usr/bin/env python
import threading
from datetime import datetime
from netmiko import ConnectHandler
from my_devices import device_list as devices
def show_version(a_device):
"""Execute show version command using Netmiko."""
remote_conn = ConnectHandler(**a_device)
print()
print("#" * 80)
print(remote_conn.send_command_expect("show version"))
print("#" * 80)
print()
def main():
"""
Use threads and Netmiko to connect to each of the devices. Execute
'show version' on each device. Record the amount of time required to do this.
"""
start_time = datetime.now()
for a_device in devices:
my_thread = threading.Thread(target=show_version, args=(a_device,))
my_thread.start()
main_thread = threading.currentThread()
for some_thread in threading.enumerate():
if some_thread != main_thread:
print(some_thread)
some_thread.join()
print("\nElapsed time: " + str(datetime.now() - start_time))
if __name__ == "__main__":
main()