Update modules/interfaces.py

This commit is contained in:
Blackwhitebear8 2025-10-31 19:29:16 +01:00
parent 3309c86c58
commit e93d8e2ef3

View file

@ -1,5 +1,6 @@
def parse_interface_data(data):
interface_table = []
current_interface_entry = None
if "data" in data:
raw_data = data["data"]
@ -7,17 +8,18 @@ def parse_interface_data(data):
for line in raw_data.split("\n"):
if line.startswith("Interface") and "IP Address" in line:
continue
if line.startswith("Codes:"):
continue
if line.strip().startswith('-'):
continue
if not line.strip():
current_interface_entry = None
continue
if line.strip():
if not line[0].isspace():
interface_info = line.split()
if len(interface_info) >= 6:
interface_table.append({
current_interface_entry = {
"interface": interface_info[0],
"ip_address": interface_info[1] if interface_info[1] != '-' else 'N/A',
"mac_address": interface_info[2],
@ -25,6 +27,21 @@ def parse_interface_data(data):
"mtu": interface_info[4],
"status": interface_info[5],
"description": " ".join(interface_info[6:])
})
}
interface_table.append(current_interface_entry)
else:
current_interface_entry = None
elif current_interface_entry and line[0].isspace():
additional_ip = line.strip()
if len(additional_ip.split()) == 1 and ('/' in additional_ip or ':' in additional_ip):
if current_interface_entry["ip_address"] == 'N/A':
current_interface_entry["ip_address"] = additional_ip
else:
current_interface_entry["ip_address"] += f"<br>{additional_ip}"
else:
current_interface_entry = None
return interface_table