Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

verizon_router_client-0.1.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

verizon_router_client-0.1.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

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

Hashes for verizon_router_client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 095ab43f03a36c6a4cc1ced5afb2a219edf021bfa8185075124621949a5645cd
MD5 089fd3279ecb3fdb86e198876639ae20
BLAKE2b-256 1bce333b1cb3a5b43fc36e4b483075b07cf7f7f27a9a3bde617bd1c6c799080e

See more details on using hashes here.

Provenance

The following attestation bundles were made for verizon_router_client-0.1.0.tar.gz:

Publisher: release.yml on Brishen/verizon_router_client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file verizon_router_client-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for verizon_router_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45b2e15cdeee69a8a753ce6d9141d448f27166ace7049e38f078e3516600330c
MD5 56e78b8116ced57b3fe69defa5cdb08d
BLAKE2b-256 f43fdf1ecdfd364ed39df17ff76e666b2d869086026eef309dbbbb60d6970083

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page