Files
2026-06-13 03:18:28 +02:00

97 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).