AutoDialer is a cross-platform Python CLI package for router APIs, designed to rotate public IP addresses automatically and streamline router interactions.
- Convenient IP rotation on dynamic lines without manual router reboot.
- Cross-platform (Windows, Linux, macOS, BSD).
- CLI-first usage for scripts and automation.
pip install autodialerNote
Only TP-Link, ZTE and ASUS routers are supported now.
Warning
Keep .env private and never commit credentials.
Create a .env file in your working directory:
| Variable | Description |
|---|---|
PANEL_USERNAME |
Router panel username (defaults to admin) |
PANEL_PASSWORD |
Router panel password |
PPPOE_USERNAME |
ISP PPPoE username override (optional) |
PPPOE_PASSWORD |
ISP PPPoE password override (optional) |
ASN |
Optional library-level default ASN. The CLI currently expects the ASN to be passed explicitly with --asn <ASN>. |
Example:
PANEL_USERNAME='admin'
PANEL_PASSWORD='your_router_panel_password'
PPPOE_USERNAME='your_pppoe_username'
PPPOE_PASSWORD='your_pppoe_password'
ASN='AS9929'After installation, use the CLI directly:
autodialer --force
autodialer --asn AS9929
autodialer-devices
autodialer --changeArguments:
-f,--force: force reconnection even if ASN is already matched.-a,--asn: target ASN (for exampleAS9929or9929).-c,--change: change the IP address.
Behavior:
autodialerwith no arguments is invalid; use one of--force,--asn <ASN>, or--change.- AutoDialer detects current WAN protocol and applies matching reconnection action.
- PPPoE uses disconnect/connect flow and reuses the router's saved credentials by default.
- If
PPPOE_USERNAMEandPPPOE_PASSWORDare set, AutoDialer updates the router's PPPoE config before reconnecting. - DHCP uses DHCP renew flow and shares the same ASN/check/retry control logic.
- Setup and CLI details:
docs/getting-started.md - Detection and reconnection flow:
docs/how-it-works.md - Contribution guide:
CONTRIBUTING.md
Thanks for using AutoDialer.