Last active 1731069450

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

dyndns-mikrotik.sh Raw
1# !!! Замените параметры ниже !!!
2# <API_KEY> - ключ API вашего аккаунта
3# <DOMAIN> - доменное имя (например, router.ru)
4# <NAME> - поддомен в домене <DOMAIN>, либо "@" если нужно обновить IP для <DOMAIN>
5
6:local api_key "<API_KEY>"
7:local api_server "api.mnogoweb.com"
8:local domain "<DOMAIN>"
9:local name "<NAME>"
10
11:global previousIP
12
13:log info ("UpdateDynDNS: api_server = $api_server")
14:log info ("UpdateDynDNS: api_key = $api_key")
15:log info ("UpdateDynDNS: domain = $domain")
16:log info ("UpdateDynDNS: name = $name")
17:log info ("UpdateDynDNS: previousIP = $previousIP")
18
19/tool fetch mode=http address="ip.ezit.hu" src-path="/ip.php" dst-path="/dyndns.checkip.html"
20:local result [/file get dyndns.checkip.html contents]
21:local resultLen [:len $result]
22:local startLoc 0
23:local endLoc [:find $result "
24" -1]
25:local currentIP [:pick $result $startLoc $endLoc]
26:log info "UpdateDynDNS: currentIP = $currentIP"
27
28:if ($currentIP != $previousIP) do={
29 /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"
30 :local result [/file get dyndns.txt contents]
31 :log info ("UpdateDynDNS: IP update needed")
32 :log info ("UpdateDynDNS: Dyndns Update Result: ".$result)
33 :put ("DynDNS Update Result: ".$result)
34} else={
35 :log info ("UpdateDynDNS: IP update is not needed")
36}