Files
vydns/readme.md
2026-03-21 14:00:33 +01:00

46 lines
1.5 KiB
Markdown

# 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 `requests` module
## 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 provider
- `username`: DynDNS account username
- `password`: DynDNS account password
- `domains`: list of domain names to update
- `delay`: 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.