API documentation of noip.com: https://www.noip.com/integrate/request
import base64
auth_str = 'your-user:your-password'
byte_str = auth_str.encode('ascii')
auth_b64 = base64.b64encode(byte_str)
print(auth_b64)
Example Output = NVpTWERNTm5JRmNnSzhKUWs0THo7
First, replace placeholders <...>.
curl -H "Host: dynupdate.no-ip.com" -H "Authorization: Basic <your-base64-credentials>" -H "User-Agent: <Company> <Devide>/<Firmware> <Email Contact>" -d "hostname=<your-dyndns-address>" -X POST https://dynupdate.no-ip.com/nic/update
- Login to MikroTik router with Putty
- Convert your credentials for noip.com to base64-encoded-auth-string as shown above.
- Add script to RouterOS:
/system script
add name=dyndns-update comment="Update IP address" source={/tool fetch url="https://dynupdate.no-ip.com/nic/update" mode=https http-method=post http-data="hostname=<your-dyndns-address>" host="dynupdate.no-ip.com" http-header-field="User-Agent: <Company> <Devide>/<Firmware> <Email Contact>, Authorization: Basic <your-base64-credentials>"}
Info: Replace placeholders <...>.
- Test the script.
- Add scheduler to RouterOS:
/system scheduler
add disabled=no start-time=startup interval=5m name=dyndns-update on-event="/system script run dyndns-update"