From c35c3fcdbce6a47b1315bd23b15ca81cbb337adc Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Thu, 20 Feb 2025 17:28:07 +0100 Subject: [PATCH] fix parse for get better the mac in inxi file Refactor of parsing of network cards for get better the info --- evidence/mixin_parse.py | 1 - evidence/normal_parse.py | 9 +++++++-- evidence/normal_parse_details.py | 28 ++++++++++++++++------------ utils/constants.py | 2 +- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/evidence/mixin_parse.py b/evidence/mixin_parse.py index d045e08..819edf8 100644 --- a/evidence/mixin_parse.py +++ b/evidence/mixin_parse.py @@ -38,7 +38,6 @@ class BuildMix: self.algorithms[k] = self.get_hid(k) - def get_doc(self): self._get_components() diff --git a/evidence/normal_parse.py b/evidence/normal_parse.py index ce896c9..bc1dbfe 100644 --- a/evidence/normal_parse.py +++ b/evidence/normal_parse.py @@ -10,9 +10,14 @@ logger = logging.getLogger('django') def get_mac(inxi): nets = get_inxi_key(inxi, "Network") - networks = [(nets[i], nets[i + 1]) for i in range(0, len(nets) - 1, 2)] + n_nets = len(nets) - 1 - for n, iface in networks: + for i in range(0, n_nets): + if i + 1 > n_nets: + break + + n = nets[i] + iface = nets[i + 1] if get_inxi(n, "port"): return get_inxi(iface, 'mac') diff --git a/evidence/normal_parse_details.py b/evidence/normal_parse_details.py index 67aac81..395084a 100644 --- a/evidence/normal_parse_details.py +++ b/evidence/normal_parse_details.py @@ -282,9 +282,8 @@ class ParseSnapshot: def get_networks(self): nets = get_inxi_key(self.inxi, "Network") or [] - networks = [(nets[i], nets[i + 1]) for i in range(0, len(nets) - 1, 2)] - - for n, iface in networks: + for i in range(0, len(nets)-1): + n = nets[i] model = get_inxi(n, "Device") if not model: continue @@ -298,20 +297,25 @@ class ParseSnapshot: if get_inxi(n, "type") == "USB": interface = "USB" - speed = get_inxi(iface, "speed") - if not speed: - speed = get_inxi(n, "speed") + manufacturer = get_inxi(n, "manufacturer") + speed = get_inxi(n, "speed") + mac = "" - self.components.append( - { + if len(nets) > i+1: + iface = nets[i+1] + mac = get_inxi(iface, 'mac') + if not speed: + speed = get_inxi(iface, "speed") + + self.components.append({ "type": "NetworkAdapter", "model": model, - "manufacturer": get_inxi(n, 'vendor'), - "serialNumber": get_inxi(iface, 'mac'), + "manufacturer": manufacturer, + "serialNumber": mac, "speed": speed, "interface": interface, - } - ) + }) + def get_sound_card(self): audio = get_inxi_key(self.inxi, "Audio") or [] diff --git a/utils/constants.py b/utils/constants.py index 64f9e1e..5ed3079 100644 --- a/utils/constants.py +++ b/utils/constants.py @@ -14,7 +14,7 @@ EREUSE24 = [ "model", "chassis", "serial_number", - "sku" + "mac" ] # EREUSE22 is used for build the chid of DPP -- 2.30.2