# SonicWall .exp to HTML report tools Two scripts that take a SonicWall `.exp` configuration export and produce a styled, standalone HTML report next to the source file: `.html`. - `process_exp.py` — command-line converter - `process_exp_gui.py` — Tkinter GUI front-end that calls `process_exp.py`'s `convert()` in a background thread ## Requirements - **Python 3.9 or newer** (only the standard library is used — see `requirements.txt`; there are no pip dependencies). - **For the GUI only:** the `tkinter` module. Verify with: ```sh python3 -c "import tkinter" ``` If it fails, install it for your distro: - Debian/Ubuntu: `sudo apt install python3-tk` - Fedora: `sudo dnf install python3-tkinter` - macOS/Windows: included in the standard python.org installer. A `.exp` file is the base64/`&`-encoded export you download from a SonicWall firewall's admin interface (Configuration > Restore/Upgrade > Download). ## Usage ### Command line ```sh python3 process_exp.py ``` Example: ```sh python3 process_exp.py myfw.exp # -> wrote myfw.html ``` The HTML file is written next to the input file, sharing its name (`myfw.exp` -> `myfw.html`). Open it in any browser; it is fully self-contained (no external CSS/JS) and has a print-friendly stylesheet. Notes: - Secret-looking fields (passwords, keys, PSKs) are deliberately omitted from the report. - If the run fails with a decode error, the file is probably not a valid `.exp` export (wrong format, corrupted download, etc.). ### GUI ```sh python3 process_exp_gui.py # pick the file via the Browse dialog python3 process_exp_gui.py file.exp # or pre-select the file ``` Workflow: **Browse...** -> select the `.exp` file -> **Run conversion** -> when done, **Open HTML in browser** opens the report. ## Files | File | Purpose | |----------------------|-------------------------------------------| | `process_exp.py` | CLI: `.exp` -> text -> report -> HTML | | `process_exp_gui.py` | GUI wrapper around `process_exp.convert()`| | `requirements.txt` | Dependency notes (stdlib only) | | `README.md` | This file |