From 8314c18c0fec49d3a9af67b66bff6ef927ff70f0 Mon Sep 17 00:00:00 2001 From: Chevallier Date: Thu, 15 Jan 2026 13:54:56 +0100 Subject: [PATCH] correction parsing route Forcepoint --- Parseurs_config_Firewall/src/main.py | 7 --- .../src/scripts/json_Forcepoint.py | 43 ++++++++++++++++--- main.py | 2 +- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/Parseurs_config_Firewall/src/main.py b/Parseurs_config_Firewall/src/main.py index 4738a6d..cc80ab4 100644 --- a/Parseurs_config_Firewall/src/main.py +++ b/Parseurs_config_Firewall/src/main.py @@ -8,21 +8,14 @@ from scripts.export_matrice_flux import export_to_excel as export_flux_to_excel from scripts.export_matrice_routage import export_to_excel as export_routing_to_excel def verify_if_file_exists(name): - print("AAAAAAAAAAAAAAAAA") - print(name) base, ext = os.path.splitext(name) counter = 1 - print("BBBBBBBBBBBBBBB") - print(base) new_name = name - print("CCCCCCCCCCCCCCC") - print(new_name) while os.path.exists(new_name): new_name = f"{base}_{counter}{ext}" counter += 1 return new_name - def main(): if len(sys.argv) < 3: print("Usage: python3 src/main.py [paloalto|stormshield|forcepoint] [-o ] [-f] [-r]") diff --git a/Parseurs_config_Firewall/src/scripts/json_Forcepoint.py b/Parseurs_config_Firewall/src/scripts/json_Forcepoint.py index 580539d..3aadda4 100644 --- a/Parseurs_config_Firewall/src/scripts/json_Forcepoint.py +++ b/Parseurs_config_Firewall/src/scripts/json_Forcepoint.py @@ -103,12 +103,43 @@ class ForcepointParser(ParserMixin): self.config['interfaces'].append(Interface(name=name, ip=ip_addr, netmask=netmask, comment=comment)) def _parse_virtual_routers(self): - """Parse routeurs simples""" - for router in self.root.findall(".//router"): - name = router.get("name") - ip = router.find("mvia_address") - ip_addr = ip.get("address") if ip is not None else None - self.config['virtual_routers'].append(VirtualRouter(name=name, interfaces=[ip_addr] if ip_addr else [], static_routes=[])) + """Parse les virtual routers avec interfaces et routes statiques""" + for router in self.root.findall(".//routing_node"): + vr_name = router.get("name") + interfaces = [] + static_routes = [] + + for iface in router.findall(".//interface_rn_level"): + iface_name = iface.get("name", None) + + for network in iface.findall(".//network_rn_level"): + for gw in network.findall(".//gateway_rn_level"): + + for ip_entry in gw.findall(".//ipaddress_behind_router"): + gw_ip = ip_entry.get("gateway") + ip_cidr = ip_entry.get("ipaddress") + static_routes.append( + StaticRoute( + name=f"{vr_name}_{ip_cidr}", + destination=ip_cidr, + metric=0, + next_hop_ip=gw_ip, + interface=iface_name + ) + ) + + if gw_ip: + interfaces.append(gw_ip) + + interfaces = list(set(interfaces)) + + self.config['virtual_routers'].append( + VirtualRouter( + name=vr_name, + interfaces=interfaces, + static_routes=static_routes + ) + ) def _parse_security_rules(self): """Parse règles FW Forcepoint""" diff --git a/main.py b/main.py index 8001d9b..aca5d40 100644 --- a/main.py +++ b/main.py @@ -69,7 +69,7 @@ def open_main_gui(): root = tk.Tk() root.title("Analyse Réseau") root.geometry("650x350") - root.resizable(False, False) + root.resizable(True, True) ttk.Label( root,