Update NAT Rule on IP Change - via Script?

Hello,
Got a RB4011 acting as router and DHCP server.
The RB4011 has a script that checks the IP address for changes every five minutes.
Whenever there is a change, it updates a DynDNS.com account with the new address.

The RB4011 also has a NAT rule that forwards a couple of ports over the a security camera DVR.

My problem is that if the IP address changes, and DynDNS changes... the NAT rule still doesn't know the new address.
I attach the NAT rule, and the script below.

How can I update the NAT rule with the new IP?

=======================================

0    ;;; defconf: masquerade
      chain=srcnat action=masquerade out-interface-list=WAN 
      ipsec-policy=out,none 

 1    ;;; Rangers DVR port forwarding.
      chain=dstnat action=dst-nat to-addresses=10.0.0.9 protocol=tcp 
      dst-address=123.123.123.123 dst-port=80,443,38880,38881,38882 log=yes 
      log-prefix="dvr_cameras_"

=======================================

:global ddnsuser "dyndnsUSER"
:global ddnspass "PASSWORD_for_DynDNS"
:global theinterface "ether1"
:global ddnshost ourHostDomain.dyndnssite.com
:global ipddns [:resolve $ddnshost];
:global ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ]
:if ([ :typeof $ipfresh ] = nil ) do={
   :log info ("DynDNS: No ip address on $theinterface .")
} else={
   :for i from=( [:len $ipfresh] - 1) to=0 do={ 
      :if ( [:pick $ipfresh $i] = "/") do={ 
    :set ipfresh [:pick $ipfresh 0 $i];
      } 
}
 
:if ($ipddns != $ipfresh) do={
    :log info ("DynDNS: IP-DynDNS = $ipddns")
    :log info ("DynDNS: IP-Fresh = $ipfresh")
   :log info "DynDNS: Update IP needed, Sending UPDATE...!"
   :global str "/nic/update\?hostname=$ddnshost&myip=$ipfresh&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
   /tool fetch address=members.dyndns.org src-path=$str mode=http user=$ddnsuser \
         password=$ddnspass dst-path=("/DynDNS.".$ddnshost)
    :delay 1
    :global str [/file find name="DynDNS.$ddnshost"];
    /file remove $str
    :global ipddns $ipfresh
  :log info "DynDNS: IP updated to $ipfresh!"
    } else={
     :log info "DynDNS: dont need changes";
    }
}

=======================================

Have you looked at Miktotik’s cloud function? Mikrotik gives a free DNS service for you with automatic update.

http://forum.mikrotik.com/t/cloudflares-ddns/128441/4

Go to Firewall → address lists and Create a new rule…
Give a name of your choice and at the address field fill your dyndns address… A dynamic rule will be created…
After that on your dst nat rule, delete the dst address and instead go to advanced tab and at the dst-address-list select the list you created in the previous step…

When the address changes the address list will be updated…

There are other solutions as well but that will work as well…