Skip to content

Releases: stecklars/dynamic-dns-netcup-api

Version 5.0

02 Mar 23:34
Compare
Choose a tag to compare

Thank you for your continued use of my script. Today, I can release version 5.0 of it.

The last release has been more than a year ago and I once more found some time to continue working on it.

The new version 5.0 includes the following new features:

  • It is now possible to set the API URLs for determining the public IPv4 / IPv6 address freely using the configuration settings IPV4_ADDRESS_URL, IPV4_ADDRESS_URL_FALLBACK, IPV6_ADDRESS_URL and IPV6_ADDRESS_URL_FALLBACK. It is, however, not necessary to do that – if you do not set them, reasonable default values will be used. More on that in the next paragraph. Thanks to @henningkerstan for the pull request that made this possible (#29).
  • I am now running my very own API for returning the public IPv4 / IPv6 address of the visitor at https://get-ipv4.steck.cc and https://get-ipv6.steck.cc and this service is now being used by default. Some users saw issues with the previous default services and I hope that this will work better. This also fixes #30 and partially #28.

This release also includes an important bugfix:

The netcup CCP DNS API currently has an internal bug where sessions expire too early. This caused the error message The session id is not in a valid format. in some cases. The script will now try to relogin and retry the last request in case this error occurs. This fixes #21.

As always, I appreciate all your feedback and work on this project and I hope that my script helps you. If you have any questions, issues, or feedback, open an issue and I will look into it.

Version 4.0

06 Jan 09:22
64adbc1
Compare
Choose a tag to compare

First of all, I wish you all a happy new year. 🎆

I finally found the time to continue working on this script and for this reason, we can start the new year with a big release, including many requested features: 🆕

  • Added retries for all API actions (all API actions will be tried for three times with a 30 second cooldown phase in between, in case there is an error) (fixes #23)
  • Warnings are no longer output on stderr, if the --quiet option is set (fixes #23)
  • Config files can now be specified on the command line (fixes #20)
  • IPv4 can be disabled (#10, #17)
  • IPv4 / IPv6 addresses can now be set as a command line option, using --ipv4 / -4 and --ipv6 / -6 (#17)
  • A bit more verbose output, which might help with debugging some issues in the future

A config file change is recommended:
Due to the fact that IPv4 can now be disabled, I recommend to set the constant USE_IPV4 in your config file, as in config.dist.php, regardless of whether you want to use IPv4 or not. If the option is not set, the following warning will be output:
[WARNING] USE_IPV4 not defined in config.php. Assuming that IPv4 should be used to support deprecated legacy configs. Please add USE_IPV4 to your config.php, as in config.dist.php

I would also like to thank everyone for their pull requests. Unfortunately, I usually cannot find the time to review and merge them. For this reason, I have released contributing guidelines, which basically state that I cannot really work on pull requests for this project at this time. However, I will make sure to fix urgent issues and add new features that are wanted and needed every now and then.

I apprieciate all your feedback and work on this project and I hope that my script helps you. If you have any questions, issues, or feedback, open an issue and I will look into it.

Version 3.0.1

28 Apr 21:05
Compare
Choose a tag to compare

A small bug-fix release, which fixes / adds the following:

  • Display more information, if the error "More than 180 requests per minute. Please wait and retry later. Please contact our customer service to find out if the limitation of requests can be increased." is returned by the netcup API. This error often indicates that the wrong API credentials have been supplied.
  • Fixing issues that may have occured due to the previous usage of relative paths within the script with some system / PHP configurations.

Version 3.0

20 Jan 01:16
Compare
Choose a tag to compare

Added a new highly requested feature 🚀

🆕 It is now possible to update any combination of domains, subdomains, domain roots, domain wildcards – at the same time.
One run and all your domains and subdomains have been updated according to your wishes. Say goodbye to CNAMEs or multiple script instances. 💥 🤯 (Closes #4)

Check out the new config.dist.php supplied with the new version to profit from the new function.

Important notes when upgrading from an older version:
Older versions used a different config format. It looks like this:

define('DOMAIN', 'mydomain.com');
define('HOST', 'server');

(This would update server.mydomain.com, for example.)

This config format is still accepted for the time being, however it is considered deprecated and may be removed in any further release. A warning will be printed if you did not yet switch to the new config format:
[2022/01/20 01:10:12 +0000][WARNING] You are using an outdated configuration format (for configuring domain / host). This is deprecated and might become incompatible very soon. Please update to the new configuration format (using 'DOMAINLIST'). Please check the documentation in config.dist.php for more information.
I therefore recommend you to switch to the new config format, as described in the config.dist.php supplied with the new version. You can then delete or comment out the old config options. However, if you provide the config in the new DOMAINLIST option, it will always be preferred over the old config options anyway.

For example, the above configuration would look like this in the new config format:
define('DOMAINLIST', 'mydomain.com: server');
Now that doesn't look too different, does it?

But it opens up new possibilities:
Imagine you want not only to update server.mydomain.com but also server2.mydomain.com. Previously, you would have to create a CNAME DNS-Record on server2.mydomain.com to server.mydomain.com or you would have to run two instances of my script. Now, you can just change the config to this:
define('DOMAINLIST', 'mydomain.com: server, server2');

Want to add another domain? No problem:
define('DOMAINLIST', 'mydomain.com: server, server2; mydomain2.com: @, *');
(Now, it updates server.mydomain.com, server2.mydomain.com, mydomain2.com (root domain) and every subdomain of mydomain2.com where no other DNS record has been defined (wildcard).)

Version 2.0.1

09 Sep 00:58
Compare
Choose a tag to compare

Small bug fix release - and also to make sure that everyone is aware: This script still works ;)

  • Improve error handling (especially for cURL / HTTP status code errors) - fixes #11
  • Add shebang line - fixes #5
  • Check if cURL PHP extension is installed
  • Added timeout for API actions - fixes #2
  • Update README to reflect changes

Version 2.0

10 Jun 03:19
ef17459
Compare
Choose a tag to compare

Added several new features:

  • IPv6 Support
  • Quiet option (see README)
  • The script now creates the necessary DNS record(s), if they don't already exist
  • Outputs have been improved
    • They now include a date- and timestamp
    • Errors will be sent to Stderr, while notices go to Stdout
  • Script now exits with correct exit code on error
  • Added fallback API for IPv4 (as well as for the new IPv6 support)
  • Coding style improvements

Version 1.0

30 May 19:42
0a94f40
Compare
Choose a tag to compare

First release