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 | } |