Updates your DNS records on supported DNS registrars.
Project description
Strato-DynDNS
Strato-DynDNS updates your website's DNS records on DNS servers. Originally designed for Strato.
Disclaimer
- This tool is in no way associated with Strato AG.
- You use this tool at your own sole responsibility.
- To fetch external IPV4 and IPV6 Addresses, this library uses a simple PHP endpoint written and hosted by myself. No data about users IP is stored or processed by me except for amount of usage of API which can be seen here publicly. However, logging of your IP address might still be done by Cloud Service Provider. If you do not want this, you can supply own API endpoint which returns pure IP address as response. See below in docs.
Currently Supported Registrars
- Strato
- Namecheap
Installation
To install this tool, please download a suited version for your operating system from releases page of github repository of this project. Alternatively, you can install it via pip:
$ pip3 install strato-dyndns
If you want v1 (which only supports strato), use $ pip3 install strato-dyndns==1.2.1
Usage:
Command Line Option | Function |
---|---|
-c or --config |
inputs a configuration file, look below for configuration file syntax |
-u or --username |
specify username |
-p or --password |
specify password |
-d or --domain |
specify domain |
-ip |
specify ip address, accepts multiple IP addresses separated by spaces |
-v4 |
specifies to update IPv4 records |
-v6 |
specifies to update IPv6 records |
Python (3.6+) Library Documentation
The DynDNSClient
library was written with importablity in mind. Full documentation to be found here.
Quality of Life (QoL)
For QoL, this tool offers a functionality to read parameters from a config file.
1. Configuration file
A configuration file needs to be in JSON Format and needs to contain mandatory parameters username
, password
and domain
. An example config file could look like this:
{
"username": "maindomain.de",
"password": "S00p3rS3cur3_!",
"domain": "subdomain.maindomain.de"
}
Please take into consideration that username
for a Namecheap domain is actually the domain itself and domain
is either @
or www
etc. For more info about this, please read this document.
2. Automation
While this script itself does not YET support chronic executions, scheduling updates are indeed possible with tools like crontab
e.g.
#open cronjobs in editing mode
$ crontab -e
#add strato-dyndns to list
10 10 * * 1 strato_dyndns strato -c config.conf -v4 -v6
#this would update your DNS records at 10:10 am every week.
To-Do
- add a block scheduler for own scheduling mechanism
- add other domain registrars
Contributions
Any contribution to this tool are welcome. Any pull request, bug or issue reporting will be addressed as soon as possible.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file strato_dyndns-2.3.3.tar.gz
.
File metadata
- Download URL: strato_dyndns-2.3.3.tar.gz
- Upload date:
- Size: 25.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c94c2222505ecce9e613a94d6fd29980c44c7faa2622f89d0605bc15905e208 |
|
MD5 | af7c7cfdac8586024e68487996c968d7 |
|
BLAKE2b-256 | 741c7e509e12f8c7dcc762dd2f8036669661307c817e426d2aefe4cd8d4e6adc |
File details
Details for the file strato_dyndns-2.3.3-py3-none-any.whl
.
File metadata
- Download URL: strato_dyndns-2.3.3-py3-none-any.whl
- Upload date:
- Size: 28.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 715ce09d8b26f48cdf2123cd448f1ba877050aacc4bc5130513176d0fbf2be8c |
|
MD5 | 4d8a49ee68f22ef5b25a680e07545178 |
|
BLAKE2b-256 | 5db1500acc8e6c14b4b7e6301c255faf60341c1596b9b20d8a84dd6ea383c127 |