2.1 KiB
2.1 KiB
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
pip install napalm-fritzbox
Or from source:
git clone https://github.com/napalm-automation-community/napalm-fritzbox
cd napalm-fritzbox
pip install -e .
Quick start
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
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_powerandfrequencyinget_radio_status()are not available via TR-064 and are reported as0.
Development
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
License
Apache 2.0 — see LICENSE.