1.5 KiB
1.5 KiB
VYDNS
A simple DynDNS v2 client written in Python, compatible with providers such as OVH DynHost.
Features
- Periodically checks the public IP address
- Updates DNS records only when the IP changes
- Uses a local cache to avoid unnecessary updates
- No external dependencies except
requestsmodule
Usage
Run the script with Python. It will periodically:
- Query a web endpoint that returns the public IP in plain text
- Compare it with the cached IP
- If the IP has not changed, sleep for the configured delay
- If the IP has changed, update the DNS records and refresh the cache
- If no cache exists, create it and perform an initial update
Configuration
The script relies on a JSON configuration file named config.json located in the working directory.
It must contain the following keys:
ip_server: URL of the endpoint used to retrieve the public IP (must return plain text)dns_endpoint: DynDNS v2 API endpoint of the providerusername: DynDNS account usernamepassword: DynDNS account passworddomains: list of domain names to updatedelay: interval in seconds between checks
You can find an example configuration file in this repo. Warning: the password is stored in plain text. Changing config file permissions is recommended.
Supported DynDNS providers
To this day, these DynDNS providers have been found to work well with the script:
- OVH
License
This script and the provided examples are under the MIT license.