Заходим в System / Scripts. Добавляем новый скрипт. Назовем “dyndns”, название пригодится в планировщике.
:local username "USERNAME" :local password "PASSWORD" :global hostname "DYNDNS_ADDRESS" :global dyndnsForce :global previousIP :local resolvedIP [:resolve $hostname] #print some debug #:log info ("UpdateDynDNS: username = $username") #:log info ("UpdateDynDNS: password = $password") :log info ("UpdateDynDNS: hostname = $hostname") :log info ("UpdateDynDNS: previousIP = $previousIP") :log info ("UpdateDynDNS: resolvedIP = $resolvedIP") # get the current IP address from the internet (in case of double-nat) /tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html" :local result [/file get dyndns.checkip.html contents] # parse the current IP result :local resultLen [:len $result] :local startLoc [:find $result ": " -1] :set startLoc ($startLoc + 2) :local endLoc [:find $result "" -1] :local currentIP [:pick $result $startLoc $endLoc] :log info "UpdateDynDNS: currentIP = $currentIP" # Remove the # on next line to force an update every single time - useful for debugging, # but you could end up getting blacklisted by DynDNS! # Edit: Not really needed anymore... the result is not equal... Update will happen. #:set dyndnsForce true # Determine if dyndns update is needed # more dyndns updater request details http://www.dyndns.com/developers/specs/syntax.html #This is where we check the DNS record against actual result. Thanks to jimstolz76 :if (($currentIP != $resolvedIP) || ($dyndnsForce = true)) do={ :set dyndnsForce false :set previousIP $currentIP /tool fetch user=$username password=$password mode=http address="members.dyndns.org" \ src-path="/nic/update?hostname=$hostname&myip=$currentIP" dst-path="/dyndns.txt" :local result [/file get dyndns.txt contents] :log info ("UpdateDynDNS: Dyndns update needed") :log info ("Update Result: " . $result) :put ("Dyndns Update Result: " . $result) } else= { :log info ("UpdateDynDNS: No dyndns update needed") }
Заходим в System / Scheduler и добавляем новое задание.
Или в консоли вводим
/system scheduler add name=dyndns interval=00:30 on-event="/system script run dynDns\r\n"
Иначе DynDNS может заблокировать вас.
Скрипт для no-ip.org
# Set needed variables :local username "@gmail.com" :local password "********" :local hostname "****.no-ip.org" :global systemname [/system identity get name] :if ($systemname = "Site1" ) do={ :set hostname "*****.no-ip.org" } :global dyndnsForce :global previousIP # print some debug info ## :log info ("UpdateDynDNS: username = $username") ## :log info ("UpdateDynDNS: password = $password") ## :log info ("UpdateDynDNS: hostname = $hostname") ## :log info ("UpdateDynDNS: previousIP = $previousIP") # get the current IP address from the internet (in case of double-nat) /tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html" :local result [/file get dyndns.checkip.html contents] # parse the current IP result :local resultLen [:len $result] :local startLoc [:find $result ": " -1] :set startLoc ($startLoc + 2) :local endLoc [:find $result "" -1] :local currentIP [:pick $result $startLoc $endLoc] :log info "UpdateDynDNS: currentIP = $currentIP" # get the previous IP address from saved file dyndns.txt :if (([/file find name=dyndns.txt]) != "") do={ :local result [/file get dyndns.txt contents] # parse the previous IP result :local resultLen [:len $result] :local startLoc [:find $result "\_" -1] :set startLoc ($startLoc + 1) :local endLoc $resultLen :global previousIP [:pick $result $startLoc $endLoc] :log info "UpdateDynDNS: previousIP = $previousIP" } else={ :set previousIP "0.0.0.0" } # Remove the # on next line to force an update every single time - useful for debugging, # but you could end up getting blacklisted by DynDNS! :set dyndnsForce true ## :log info ("Debug - previousIP: ".$previousIP) ## :log info ("Debug - currentIP: ".$currentIP) ## :log info ("Debug - dyndnsForce: ".$dyndnsForce) # Determine if dyndns update is needed # more dyndns updater request details available at http://www.dyndns.com/developers/specs/syntax.html :if (($currentIP != $previousIP) || ($dyndnsForce = true)) do={ :set dyndnsForce false :set previousIP $currentIP /tool fetch user=$username password=$password mode=http address="no-ip.com" src-path="/nic/update?hostname=$hostname&myip=$currentIP" dst-path="/dyndns.txt" :local result [/file get dyndns.txt contents] :log info ("UpdateDynDNS: Dyndns update needed") :log info ("UpdateDynDNS: Dyndns Update Result: ".$result) :put ("Dyndns Update Result: ".$result) } else={ :log info ("UpdateDynDNS: No dyndns update needed") }
Original https://kb.vmware.com/s/article/2042141 Backing up ESXi host configuration data To synchronize the configuration changed with persistent…
vCenter Converter Standalone 6.6.0 download (далее…)
VMware remote console (VMRC) 12.0.5 download Last version: VMware Remote Console 12.0.5 28 NOV 2023…
SELECT col_sizes.TABLE_SCHEMA, col_sizes.TABLE_NAME, SUM(col_sizes.col_size) AS EST_MAX_ROW_SIZE FROM ( SELECT cols.TABLE_SCHEMA, cols.TABLE_NAME, cols.COLUMN_NAME, CASE cols.DATA_TYPE WHEN…
UPDATE DB SET column = DATE(STR_TO_DATE(column, '%Y-%d-%m')) WHERE DATE(STR_TO_DATE(column, '%d-%m-%Y')) <> '0000-00-00'
echo 1 > /sys/class/block/sda/device/rescan #maybe run under root> sudo fdisk /dev/sda2 > d > 2…
View Comments
Месяца три уже не обновляется автоматически ip-адрес на dyndns.com после смены ip в роутере,
скрипт работает, но не указывается
UpdateDynDNS: previousIP= пусто.
далее указывается:
«UpdateDynDNS: currentIP = правильный ip в данный момент»
«UpdateDynDNS: No dyndns update needed»
При этом внешний ip определяется верно, но пока на самом сайте dyndns.com не привяжешь новый полученный ip в поле Your current location’s IP address is , то подключиься по днс не получается. Определяется старй ip.
Подскажите как исправить…
Спасибо
Попробуйте вот этот скрипт
RouterOS ver 6.9 ( ROS 6.x ) :
вот этот стабильно заработал на самых последней версии 6.9
Добрый день!
Спасибо за советы. Извините за долгое отсутствие, потерял ссылку на сайт. Так что не получилось проверить Ваши скрипты на dyndns. Сейчас же, когда dyndns.com стал полностью платным, пробую тоже самое, только на noip.com.
Скрипт для NOIP от автора почему-то вообще у меня не срабатывает, в логах пусто. Попробовал скрипт от Сержа, просто вставил в него данные от NOIP. Скрипт пишет что dns updated, пишет новый ip, но при этом на сайте noip.com ip остался прежний, . И ничего по DNS недоступно.
Можете помочь?
P.S.
Кстати, при прошлом вопросе ставил чекбоксы:
" Уведомить меня о новых комментариях по email."
"Уведомлять меня о новых записях почтой."
Но ничего не приходило.