dyndns-mikrotik.sh
· 1.4 KiB · Bash
Raw
# !!! Замените параметры ниже !!!
# <API_KEY> - ключ API вашего аккаунта
# <DOMAIN> - доменное имя (например, router.ru)
# <NAME> - поддомен в домене <DOMAIN>, либо "@" если нужно обновить IP для <DOMAIN>
:local api_key "<API_KEY>"
:local api_server "api.mnogoweb.com"
:local domain "<DOMAIN>"
:local name "<NAME>"
:global previousIP
:log info ("UpdateDynDNS: api_server = $api_server")
:log info ("UpdateDynDNS: api_key = $api_key")
:log info ("UpdateDynDNS: domain = $domain")
:log info ("UpdateDynDNS: name = $name")
:log info ("UpdateDynDNS: previousIP = $previousIP")
/tool fetch mode=http address="ip.ezit.hu" src-path="/ip.php" dst-path="/dyndns.checkip.html"
:local result [/file get dyndns.checkip.html contents]
:local resultLen [:len $result]
:local startLoc 0
:local endLoc [:find $result "
" -1]
:local currentIP [:pick $result $startLoc $endLoc]
:log info "UpdateDynDNS: currentIP = $currentIP"
:if ($currentIP != $previousIP) do={
/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"
:local result [/file get dyndns.txt contents]
:log info ("UpdateDynDNS: IP update needed")
:log info ("UpdateDynDNS: Dyndns Update Result: ".$result)
:put ("DynDNS Update Result: ".$result)
} else={
:log info ("UpdateDynDNS: IP update is not needed")
}
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 | } |