This commit is contained in:
Christian Manivong
2026-06-13 03:18:28 +02:00
commit 0ba884c808
9 changed files with 1247 additions and 0 deletions
+96
View File
@@ -0,0 +1,96 @@
# napalm-fritzbox
NAPALM community driver for **AVM FritzBox** routers (read-only, via TR-064).
## Requirements
| Dependency | Minimum version |
|---|---|
| Python | 3.9 |
| NAPALM | 4.0 |
| fritzconnection | 1.13 |
## Installation
```bash
pip install napalm-fritzbox
```
Or from source:
```bash
git clone https://github.com/napalm-automation-community/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
```bash
pip install -e ".[dev]"
pytest tests/
```
## CI
This project includes a GitHub Actions workflow that:
- Runs unit tests across Python 3.9–3.12
- Builds sdist and wheel
See [.github/workflows/ci.yml](.github/workflows/ci.yml).
## License
Apache 2.0 — see [LICENSE](LICENSE).