20個華為路由器常用的Python腳本,網(wǎng)工寫自動化腳本時候可以參考
你好,這里是網(wǎng)絡(luò)技術(shù)聯(lián)盟站。
昨天給大家介紹了10個華為交換機的Python腳本:
10個華為華為交換機常用的Python腳本,網(wǎng)絡(luò)工程師收藏!
大家反響不錯,后期我會陸續(xù)出一下思科、H3C、銳捷等廠商的腳本,前期會分享簡單的,單一的腳本,后面會分享復(fù)雜的腳本!
今天給大家分享20個常用的Python腳本,用于控制和管理華為路由器:
1、登錄和退出路由器:
import telnetlib
HOST = "192.168.1.1"
user = "admin"
password = "admin"
tn = telnetlib.Telnet(HOST)
tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"quit\n")
2、獲取路由器的系統(tǒng)信息:
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display version")
for line in stdout:
print(line.strip())
client.close()
3、配置路由器端口:
import telnetlib
HOST = "192.168.1.1"
user = "admin"
password = "admin"
tn = telnetlib.Telnet(HOST)
tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"system-view\n")
tn.write(b"interface GigabitEthernet0/0/1\n")
tn.write(b"ip address 192.168.2.1 255.255.255.0\n")
tn.write(b"quit\n")
tn.write(b"quit\n")
4、查看路由器端口狀態(tài):
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display interface GigabitEthernet0/0/1")
for line in stdout:
print(line.strip())
client.close()
5、配置路由器的SNMP:
import telnetlib
HOST = "192.168.1.1"
user = "admin"
password = "admin"
tn = telnetlib.Telnet(HOST)
tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"system-view\n")
tn.write(b"snmp-agent sys-info version all\n")
tn.write(b"snmp-agent community read public\n")
tn.write(b"snmp-agent target-host trap address udp-domain 192.168.2.2 params securityname public\n")
tn.write(b"quit\n")
tn.write(b"quit\n")
6、配置路由器的ACL:
import telnetlib
HOST = "192.168.1.1"
user = "admin"
password = "admin"
tn = telnetlib.Telnet(HOST)
tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"system-view\n")
tn.write(b"acl number 2000\n")
tn.write(b"rule 5 permit source 192.168.2.0 0.0.0.255\n")
tn.write(b"quit\n")
tn.write(b"interface GigabitEthernet0/0/1\n")
tn.write(b"ip address 192.168.2.1 255.255.255.0\n")
tn.write(b"traffic-filter inbound acl 2000\n")
tn.write(b"quit\n")
tn.write(b"quit\n")
7、配置路由器的靜態(tài)路由:
import telnetlib
HOST = "192.168.1.1"
user = "admin"
password = "admin"
tn = telnetlib.Telnet(HOST)
tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"system-view\n")
tn.write(b"ip route-static 192.168.3.0 255.255.255.0 192.168.2.2\n")
tn.write(b"quit\n")
tn.write(b"quit\n")
8、配置路由器的NAT:
import telnetlib
HOST = "192.168.1.1"
user = "admin"
password = "admin"
tn = telnetlib.Telnet(HOST)
tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"system-view\n")
tn.write(b"interface GigabitEthernet0/0/0\n")
tn.write(b"nat enable\n")
tn.write(b"quit\n")
tn.write(b"nat address-group 1 192.168.2.0 0.0.0.255\n")
tn.write(b"nat server protocol tcp global 202.96.209.5 inside 192.168.2.100 80\n")
tn.write(b"quit\n")
tn.write(b"quit\n")
9、配置路由器的DHCP:
import telnetlib
HOST = "192.168.1.1"
user = "admin"
password = "admin"
tn = telnetlib.Telnet(HOST)
tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"system-view\n")
tn.write(b"dhcp enable\n")
tn.write(b"interface GigabitEthernet0/0/1\n")
tn.write(b"dhcp server excluded-ip-address 192.168.2.1\n")
tn.write(b"dhcp server pool 1\n")
tn.write(b"network 192.168.2.0 mask 255.255.255.0\n")
tn.write(b"gateway-list 192.168.2.1\n")
tn.write(b"dns-list 8.8.8.8 8.8.4.4\n")
tn.write(b"quit\n")
tn.write(b"quit\n")
10、查看路由器的ARP表:
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display arp")
arp_table = stdout.readlines()
for line in arp_table:
print(line.strip())
client.close()
11、查看路由器的MAC地址表:
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display mac-address")
mac_table = stdout.readlines()
for line in mac_table:
print(line.strip())
client.close()
12、查看路由器的路由表:
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display ip routing-table")
route_table = stdout.readlines()
for line in route_table:
print(line.strip())
client.close()
13、查看路由器的接口狀態(tài):
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display interface brief")
interface_table = stdout.readlines()
for line in interface_table:
print(line.strip())
client.close()
14、查看路由器的系統(tǒng)資源使用情況:
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display system resource")
resource_info = stdout.readlines()
for line in resource_info:
print(line.strip())
client.close()
15、查看路由器的系統(tǒng)版本:
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display version")
version_info = stdout.readlines()
for line in version_info:
print(line.strip())
client.close()
16、查看路由器的運行時間:
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display clock")
clock_info = stdout.readlines()
for line in clock_info:
print(line.strip())
client.close()
17、查看路由器的接口詳細(xì)信息:
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display interface")
interface_info = stdout.readlines()
for line in interface_info:
print(line.strip())
client.close()
18、查看路由器的NAT轉(zhuǎn)換表:
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display nat session table")
nat_table = stdout.readlines()
for line in nat_table:
print(line.strip())
client.close()
19、查看路由器的DNS服務(wù)器列表:
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display dns server")
dns_info = stdout.readlines()
for line in dns_info:
print(line.strip())
client.close()
20、查看路由器的DHCP服務(wù)器配置:
import paramiko
host = "192.168.1.1"
port = 22
username = "admin"
password = "admin"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=username, password=password)
stdin, stdout, stderr = client.exec_command("display dhcp server configuration")
dhcp_info = stdout.readlines()
for line in dhcp_info:
print(line.strip())
client.close()
這些Python腳本可以幫助你快速查看華為路由器的各種信息,也可以作為開發(fā)的基礎(chǔ),進(jìn)行更多高級的操作和自動化任務(wù)。