# mio 1. Download the script and make sure it is executable ```sh wget https://raw.githubusercontent.com/lazaroblanc/IONOS-DynDNS/main/ionos_dyndns.py chmod +x ionos_dyndns.py ``` aggiornare ```sh ./ionos_dyndns.py -4 -H *.patachina.it --api-prefix 855b5080c2434ffc99f23fa20f09f0aa --api-secret bcD1lRr5af4UuXUGRSVTj-9uQxrxcj9GKcHo8D3xtaSducnWNxGx35XwqjXOwOSvTO7apFUjDWzbApUShMKPzA >> ionos_dyndns.log ``` # ionos_dyndns.py Create and update DNS records for a host using IONOS' API for use as a DynDNS (for example via a cronjob). The script will create A and/or AAAA records if none already exists for the host and update existing ones to reflect the new public IP. The public IP-Address is determined in two ways: - **IPv4**: uses the **ipify.org** API - **IPv6**: uses the `ip address show` command By default the name of the A/AAAA record that will be created/updated is one that matches the output from the command `hostname -f`.
Update your `/etc/hosts` file with your FQDN if it's not already there.
Alternatively you can override this default value by using the `-H` or `--fqdn` parameter. ## Requirements - Linux - Python 3 - IONOS API key You can create an API key here: https://developer.hosting.ionos.de/keys
The API is still in Beta and not enabled by default. In my case I had to call the customer support hotline and request to be enabled for the API. ## Usage ### Cronjob This example shows how to update the AAAA record every 5 minutes and save the script output to a file: 1. Download the script and make sure it is executable ```sh wget https://raw.githubusercontent.com/lazaroblanc/IONOS-DynDNS/main/ionos_dyndns.py chmod +x ionos_dyndns.py ``` 2. Open your crontab file with `crontab -e` 3. Paste this line: ```sh */5 * * * * ./ionos_dyndns.py --AAAA --api-prefix $publicprefix --api-secret $secret >> ionos_dyndns.log ``` ### General ``` usage: ionos_dyndns.py [-h] [-4] [-6] [-i] [-H] --api-prefix --api-secret Create and update DNS records for this host using IONOS' API to use as a sort of DynDNS (for example via a cronjob). optional arguments: -h, --help show this help message and exit -4, --A Create/Update A record -6, --AAAA Create/Update AAAA record -i , --interface Interface name for determining the public IPv6 address (Default: eth0) -H , --fqdn Host's FQDN (Default: hostname -f) --api-prefix API key publicprefix --api-secret API key secret ``` ## Ideas / To-do - [ ] improve log messages (add a timestamp) - [ ] refactor duplicate code (~ line 94)

🐛 Bug reports & Feature requests 🆕

If you've found a bug or want to request a new feature please open a new Issue

🤝 Contributing

✅ Pull requests are welcome!

📃 License

Published under the Apache License 2.0
Please see the License for details