Python client for Verizon Fios router APIs (CR1000A web UI endpoints).
Project description
verizon-router-client
Python client for Verizon Fios router APIs (focused on the CR1000A web UI endpoints).
Features
- Login/token helpers for the web UI.
- Fetch status details (uptime, WAN IPs, DNS servers).
- Read/write local DNS entries.
- Read/add/remove port forwarding rules.
- Parse known device lists.
Install
Local editable install:
pip install -e .
Or with uv:
uv pip install -e .
Quickstart
from verizon_router_client.cr1000a import VerizonRouterClient
client = VerizonRouterClient(
base_url="https://192.168.1.1",
# The router uses a hostname-bound TLS cert; this adapter handles it.
tls_hostname="mynetworksettings.com",
)
client.login("admin", "your-password")
print(client.get_uptime_seconds())
print(client.get_wan_ipv4())
print(client.get_wan_ipv6())
DNS entries
from verizon_router_client.cr1000a import VerizonRouterClient
client = VerizonRouterClient(
base_url="https://192.168.1.1",
# The router uses a hostname-bound TLS cert; this adapter handles it.
tls_hostname="mynetworksettings.com",
)
client.login("admin", "your-password")
print(client.get_dns_entries_v4())
slot = client.add_dns_ipv4("nas", "192.168.1.10")
client.clear_dns_ipv4_slot(slot)
Port forwarding
from verizon_router_client.cr1000a import VerizonRouterClient
client = VerizonRouterClient(
base_url="https://192.168.1.1",
# The router uses a hostname-bound TLS cert; this adapter handles it.
tls_hostname="mynetworksettings.com",
)
client.login("admin", "your-password")
rule_id = client.add_port_forward(
name="ssh",
private_ip="192.168.1.20",
forward_port=22,
dest_port=22,
)
client.remove_port_forward(rule_id=rule_id)
Known devices
from verizon_router_client.cr1000a import VerizonRouterClient
client = VerizonRouterClient(
base_url="https://192.168.1.1",
# The router uses a hostname-bound TLS cert; this adapter handles it.
tls_hostname="mynetworksettings.com",
)
devices = client.fetch_known_devices()
If you are not already logged in, pass a sysauth cookie value:
from verizon_router_client.cr1000a import VerizonRouterClient
client = VerizonRouterClient(
base_url="https://192.168.1.1",
# The router uses a hostname-bound TLS cert; this adapter handles it.
tls_hostname="mynetworksettings.com",
)
devices = client.fetch_known_devices(sysauth_cookie_value="...")
TLS notes
By default the client uses the bundled Verizon Fios root CA (cert/Verizon Fios Root CA.pem)
and sets the TLS SNI/Host header to mynetworksettings.com when the base URL is an IP.
If your router uses different TLS settings, override verify_tls or tls_hostname.
Development
- Python: 3.9+
- Runtime dependency:
requests
Disclaimer
This project is not affiliated with Verizon. Use at your own risk.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file verizon_router_client-0.1.0.tar.gz.
File metadata
- Download URL: verizon_router_client-0.1.0.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
095ab43f03a36c6a4cc1ced5afb2a219edf021bfa8185075124621949a5645cd
|
|
| MD5 |
089fd3279ecb3fdb86e198876639ae20
|
|
| BLAKE2b-256 |
1bce333b1cb3a5b43fc36e4b483075b07cf7f7f27a9a3bde617bd1c6c799080e
|
Provenance
The following attestation bundles were made for verizon_router_client-0.1.0.tar.gz:
Publisher:
release.yml on Brishen/verizon_router_client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
verizon_router_client-0.1.0.tar.gz -
Subject digest:
095ab43f03a36c6a4cc1ced5afb2a219edf021bfa8185075124621949a5645cd - Sigstore transparency entry: 778986269
- Sigstore integration time:
-
Permalink:
Brishen/verizon_router_client@cfe99952b4afd21df04b687c93c0ad8e6867127a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Brishen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@cfe99952b4afd21df04b687c93c0ad8e6867127a -
Trigger Event:
push
-
Statement type:
File details
Details for the file verizon_router_client-0.1.0-py3-none-any.whl.
File metadata
- Download URL: verizon_router_client-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45b2e15cdeee69a8a753ce6d9141d448f27166ace7049e38f078e3516600330c
|
|
| MD5 |
56e78b8116ced57b3fe69defa5cdb08d
|
|
| BLAKE2b-256 |
f43fdf1ecdfd364ed39df17ff76e666b2d869086026eef309dbbbb60d6970083
|
Provenance
The following attestation bundles were made for verizon_router_client-0.1.0-py3-none-any.whl:
Publisher:
release.yml on Brishen/verizon_router_client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
verizon_router_client-0.1.0-py3-none-any.whl -
Subject digest:
45b2e15cdeee69a8a753ce6d9141d448f27166ace7049e38f078e3516600330c - Sigstore transparency entry: 778986270
- Sigstore integration time:
-
Permalink:
Brishen/verizon_router_client@cfe99952b4afd21df04b687c93c0ad8e6867127a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Brishen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@cfe99952b4afd21df04b687c93c0ad8e6867127a -
Trigger Event:
push
-
Statement type: