Скрипт Mikrotik для автоматического обновления динамической записи о IP адресе dyndns.com
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # EDIT YOUR DETAILS / CONFIGURATION HERE # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</code> # Define DDNS Accounts for RB Interfaces, one per interface. # The RB interface :global ddnsinterface «интерфейс смотрящий в интернет» # The DDNS Provider (Choice of NOIP, DYNDNS or EVERYDNS) :global ddnsprovider «DYNDNS» # The Hostname to update. :global ddnshost «доменное имя» # Your Account Username :global ddnsuser «логин» # Your Account Password :global ddnspass «пароль» # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # END OF USER DEFINED CONFIGURATION # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Define Global Variables :global ddnssystem («mt-„ . [/system package get system version] ) :global ddnsip :global ddnslastip :if ([ :typeof $ddnslastip;] = “nil» ) do={ :set ddnslastip «0» } :global ddnsprovname :global str :global ddnsprovaddress :if ($ddnsprovider=«NOIP») do={ :set ddnsprovname «NoIP» :set str «/nic/update?hostname=$ddnshost&amp;myip=$ddnsip» :set ddnsprovaddress «dynupdate.no-ip.com» } if ($ddnsprovider=«DYNDNS») do={ :set ddnsprovname «DynDNS» :set str «/nic/update?hostname=$ddnshost&myip=$ddnsip&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG» :set ddnsprovaddress «members.dyndns.org» } if ($ddnsprovider=«EVERYDNS») do={ :set ddnsprovname «EveryDNS» :set str «/index.php?ver=0.1&ip=$ddnsip&domain=$ddnshost» :set ddnsprovaddress «dyn.everydns.net» } # Grab the current IP address on that interface. :global ddnsip2 [/ip address get [/ip address find interface=$ddnsinterface ] address]; :set ddnsip [:pick $ddnsip2 0 [:find $ddnsip2 «/»]]; # Did we get an IP address to compare? :if ([ :typeof $ddnsip;] = «nil» ) do={ :log info («NoIP: No ip address present on » . $ddnsinterface . «, please check.») } else={ :if ($ddnsip != $ddnslastip) do={ :log info «$ddnsprovname: Sending UPDATE!» /tool fetch address=$ddnsprovaddress src-path=$str mode=http user=$ddnsuser password=$ddnspass dst-path=(«/DDNS-„.$ddnsprovname.“.».$ddnshost) } :delay 1 :set str [/file find name=«DDNS-$ddnsprovname.$ddnshost»]; /file remove $str :set ddnslastip $ddnsip } #:log info «DDNS Update script executed successfully.»