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

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 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.