1. Đọc file show_vlan.txt và xử lý để lấy ra các trường VLAN ID, VLAN
NAME
Nội dung file show_vlan.txt:
- Tìm thấy 10.220.88.1 thì int ra "Default gateway IP/Mac" với IP và MAC tương ứng
- Tìm thấy 10.220.88.30 thì in ra "Arista3 IP/Mac is" với IP và MAC tương ứng
Nội dung fileshow_arp.txt:
3. Đọc file show_lldp_neighbors_detail.txt và xử lý tìm ra nội dung của
System Name, và Port ID của thiết bị láng giềng.
Nội dung file show_lldp_neighbors_detail.txt:
Thực Hiện:
1. Đọc file show_vlan.txt và xử lý để lấy ra các trường VLAN ID,
VLAN NAME
Code:
from __future__ import unicode_literals, print_function
from pprint import pprint
vlan_list = []
with open("show_vlan.txt" ,"r") as f: # Mở file lên đọc và tự động đóng file
show_vlan = f.read() # Gán nội dung của file vào biến show_vlan
for line in show_vlan.splitlines(): # trả về một chuỗi tương ứng là một dòng trong biến show_vlan
'''
Sẽ bỏ qua các dòng nếu có một trong các điều kiện của if
'''
if 'VLAN' in line or '-----' in line or line.startswith(' '):
continue
fields = line.split() # tách ra thành list nhỏ, căn cứ vào dấu khoảng trắng
vlan_id = fields[0] # lấy trường đầu tiên
vlan_name = fields[1] # lấy trường thứ 2
vlan_list.append((vlan_id, vlan_name))
print()
pprint(vlan_list)
print()
Kết quả:
C:\python>python Demo.py
[('1', 'default'),
('400', 'blue400'),
('401', 'blue401'),
('402', 'blue402'),
('403', 'blue403')]
C:\python>
2. Đọc file show_arp.txt và xử lý để lấy ra các trường IP, MAC.
Code:
from __future__ import unicode_literals, print_function
with open("show_arp.txt") as f:
show_arp = f.read()
print()
found1, found2 = (False, False) # gán found1 = false, và found2 = false
for line in show_arp.splitlines():
if 'protocol' in line.lower(): # nếu dòng nào có chữ 'protocol' thì bỏ qua
continue
fields = line.split() # chuyển mỗi dòng đọc được thành list
ip_addr = fields[1]
mac_addr = fields[3]
if ip_addr == '10.220.88.1': # nếu trường thứ 2 là '10.220.88.1'
print("Default gateway IP/Mac is: {}/{}".format(ip_addr, mac_addr)) # in địa chỉ ip và mac
found1 = True
elif ip_addr == '10.220.88.30': # nếu trường thứ 2 là '10.220.88.30'
print("Arista3 IP/Mac is: {}/{}".format(ip_addr, mac_addr))
found2 = True
if found1 and found2: # nếu cả 2 đã tìm được thì DỪNG không cần thực hiện hết vòng for
print("Exiting...")
break
print()
Kết quả:
C:\python>python Demo.py
Default gateway IP/Mac is: 10.220.88.1/0062.ec29.70fe
Arista3 IP/Mac is: 10.220.88.30/5254.ab71.e119
Exiting...
C:\python>
3. Đọc file show_lldp_neighbors_detail.txt và xử lý tìm ra nội dung của System Name, và Port ID của thiết bị láng giềng.
Code:
from __future__ import unicode_literals, print_function
with open("show_lldp_neighbors_detail.txt") as f:
show_lldp = f.read()
system_name, port_id = (None, None) # khởi tạo biến ban đầu là rỗng cho system_name và port_id
for line in show_lldp.splitlines():
if 'System Name: ' in line: # nếu tìm thấy thoát khỏi if
_, system_name = line.split('System Name: ') # gán biến _ cho trường đầu tiên, gán system_name là trường thứ 2
break
elif 'Port id: ' in line:
_, port_id = line.split('Port id: ') # tương tự system_name, gán port_id cho trường thứ 2
if port_id and system_name: # nếu port_id và system_name KHÁC RỖNG thì DỪNG
break
print()
print("System Name: {}".format(system_name))
print("Port ID: {}".format(port_id))
print()
Kết quả:
C:\python>python Demo.py
System Name: twb-sf-hpsw1
Port ID: 15
C:\python>
Xong!
No comments:
Post a Comment