Last active 1731069450

Скрипт для обновления публичного IP-адреса в DNS-хостинге Mnogoweb на роутерах Mikrotik

Revision 92b3af7d313ebdce854d7bf715e697e2ba51b7bb

gistfile1.txt Raw
1# Замените параметры ниже
2:local api_key "<API_KEY>"
3:local api_server "api.mnogoweb.com"
4:local domain "<DOMAIN>"
5:local name "<NAME>"
6
7:global previousIP
8
9:log info ("UpdateDynDNS: api_server = $api_server")
10:log info ("UpdateDynDNS: api_key = $api_key")
11:log info ("UpdateDynDNS: domain = $domain")
12:log info ("UpdateDynDNS: name = $name")
13:log info ("UpdateDynDNS: previousIP = $previousIP")
14
15/tool fetch mode=http address="ip.ezit.hu" src-path="/ip.php" dst-path="/dyndns.checkip.html"
16:local result [/file get dyndns.checkip.html contents]
17:local resultLen [:len $result]
18:local startLoc 0
19:local endLoc [:find $result "
20" -1]
21:local currentIP [:pick $result $startLoc $endLoc]
22:log info "UpdateDynDNS: currentIP = $currentIP"
23
24:if ($currentIP != $previousIP) do={
25 /tool fetch mode=https url="$api_server/v1/dns/dyndns?domain=$domain&name=$name" http-header-field="Authorization: Bearer $api_key" dst-path="/dyndns.txt"
26 :local result [/file get dyndns.txt contents]
27 :log info ("UpdateDynDNS: IP update needed")
28 :log info ("UpdateDynDNS: Dyndns Update Result: ".$result)
29 :put ("DynDNS Update Result: ".$result)
30} else={
31 :log info ("UpdateDynDNS: IP update is not needed")
32}