Mikrotik – автоматическое обновление dyndns.com

Скрипт 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;amp;myip=$ddnsip»
:set ddnsprovaddress «dynupdate.no-ip.com»
}
if ($ddnsprovider=«DYNDNS») do={
:set ddnsprovname «DynDNS»
:set str «/nic/update?hostname=$ddnshost&amp;myip=$ddnsip&amp;wildcard=NOCHG&amp;mx=NOCHG&amp;backmx=NOCHG»
:set ddnsprovaddress «members.dyndns.org»
}
if ($ddnsprovider=«EVERYDNS») do={
:set ddnsprovname «EveryDNS»
:set str «/index.php?ver=0.1&amp;ip=$ddnsip&amp;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.»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *