Updated ChangeIP DDNS script for ROS 7.xx

Hello all,

It seems the RouterOS 7.xx dns-update command is no longer working with the ChangeIP dynamic DNS service, or at least I couldn’t get it to work.

Based on some other suggestions here I have modified the “official” ChangeIP script. This modified method uses the fetch command to HTTPS/GET the DDNS API. I have verified on my account it shows as “Mikrotik/7.x Fetch” and updates successfully.

I’m not a RouterOS scripting guru, so any feedback is welcomed.
changeip.zip (1.52 KB)

There are hundreds of other dynamic DNS update scripts, even better written, and some even worse.
The only thing that changes between all is how they were written and the URL of the GET, but then in the end it’s always the same story…

Not work…

Log: DDNS: No ip address present on WAN, please check.

After replacing these commands

:do {
   :global ddnssystem ("mt-" . [/system package get [/system package find name=routeros] version] )
} on-error={ :log error "DDNS: Could not retrieve system version info"};

:do {
   :local ddnsip [ /ip dhcp-client get [/ip dhcp-client find where interface=$ddnsinterface] address ]
} on-error={ :log error "DDNS: could not retrieve IP address from DDNS interface"};

with these

:global ddnssystem
:do {
   :set $ddnssystem ("mt-" . [ /system package get [/system package find name=routeros] version] );
} on-error={ :log error "DDNS: Could not retrieve system version info"};


:local ddnsip
:do {
        :set $ddnsip [/ip dhcp-client get [/ip dhcp-client find where interface=$ddnsinterface] address];
} on-error={ :log error "DDNS: could not retrieve IP address from DDNS interface"};

script working again.

Hello,
I’m trying to run a dddns updater using no-ip.
i’m trying to configure your script on my Mikrotik routeur.

As i’m still a newbee, can you help me in the script config what to put beside “local ddnsinterface” in this line(23):
“:local ddnsinterface “INTERFACENAME””
Thank you in advance