# napalm-fritzbox NAPALM community driver for **AVM FritzBox** routers (read-only, via TR-064). ## Requirements | Dependency | Minimum version | |---|---| | Python | 3.10 | | NAPALM | 4.0 | | napalm-device-types | 4.21.1 | | fritzconnection | 1.13 | ## Installation ```bash pip install napalm-fritzbox ``` Or from source: ```bash git clone https://git.netork.io/NAPALM/napalm-fritzbox cd napalm-fritzbox pip install -e . ``` ## Quick start ```python from napalm import get_network_driver driver = get_network_driver("fritzbox") with driver( "192.168.178.1", "user", "pass", optional_args={"use_tls": True}, ) as d: print(d.get_facts()) print(d.get_wan_status()) print(d.get_hosts()) ``` ### Example ```python driver = get_network_driver("fritzbox") d = driver("fritz.box", "user", "pass") d.open() print(d.get_wan_status()) print(d.get_port_forwards()) print(d.get_ssids()) print(d.get_wireless_clients()) d.close() ``` ## Optional arguments | Argument | Default | Description | |---|---|---| | `use_tls` | `True` | Use HTTPS (port 49443) instead of HTTP (port 49000) | | `port` | `49443` / `49000` | Override the TR-064 port | FritzBox serves TR-064 over HTTPS with a self-signed certificate; `fritzconnection` does not verify it, so no separate `verify` option is needed. ## Limitations - Read-only: configuration management methods (`load_merge_candidate`, `commit_config`, ...) are not implemented. - `get_nat_translations()` is derived from the enabled port-forwarding rules — TR-064 does not expose a live connection-tracking table. - `get_vpn_tunnels()` returns an empty dict — FritzOS does not expose VPN tunnel status via TR-064. - `channel_width`, `tx_power` and `frequency` in `get_radio_status()` are not available via TR-064 and are reported as `0`. ## Development The rules are in [STANDARDS.md](https://git.netork.io/NAPALM/driver-standard/src/branch/main/STANDARDS.md). ```bash python -m venv .venv && .venv/bin/pip install -e ".[dev]" .venv/bin/pytest --cov ``` CI ([.gitea/workflows/ci.yml](.gitea/workflows/ci.yml)) calls the shared workflow of the NAPALM driver standard: ruff, mypy, the tests on Python 3.10–3.13, bandit, pip-audit and a build check. ## License Apache 2.0 — see [LICENSE](LICENSE).