Skip to content

Instantly share code, notes, and snippets.

@nscstjo
Last active September 1, 2024 11:42
Show Gist options
  • Save nscstjo/1ea73ccebe0bb1e4fd59b056c6eb8f58 to your computer and use it in GitHub Desktop.
Save nscstjo/1ea73ccebe0bb1e4fd59b056c6eb8f58 to your computer and use it in GitHub Desktop.
Script for Mikrotik RouterOS v7 updating AAAA DNS record on CloudFlare
:local cftoken "YOUR_CF_TOKEN"
:local cfzoneid "YOUR_CF_ZONE_ID"
:local cfrecordid "YOUR_CF_RECORD_ID"
:local recordtype "RECORD_TYPE"
:local recordname "FULL_RECORD_NAME"
:local recordttl TTL_TIME
:local isproxied false
:local interfacev6prefix [/ipv6 address get [find interface=INTERFACE_NAME from-pool=POOL_NAME] address]
:local interfacev6addr [:pick $interfacev6prefix 0 ([len $interfacev6prefix] -3)]
:local cfurl "https://api.cloudflare.com/client/v4/zones/$cfzoneid/dns_records/$cfrecordid"
:local cfhead "Authorization: Bearer $cftoken,Content-Type:application/json"
:local cfdata "{\"type\":\"$recordtype\",\"name\":\"$recordname\",\"content\":\"$interfacev6addr\",\"ttl\":$recordttl,\"proxied\":$isproxied}"
/tool fetch http-method=put mode=https url=$cfurl http-header-field="$cfhead" http-data=$cfdata output=none
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment