Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Скрипт обновления Dynamic DNS для No-IP DNS на Router OS версии 6.7

    Скрипт обновления Dynamic DNS для No-IP DNS на Router OS версии 6.7

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Скрипт обновления Dynamic DNS для No-IP DNS на Router OS версии 6.7, RouterOS
     
    ecarlevaro
    Guest
    #1
    0
    29.01.2014 03:20:00
    Поскольку у меня были проблемы с этим скриптом http://wiki.mikrotik.com/wiki/Dynamic_DNS_Update_Script_for_No-IP_DNS для обновления IP-адреса на No-IP DNS сервере, я переписал его, чтобы сделать совместимым с RouterOS версии 6.7. Проблема в том скрипте была в функции :toarray, строка :set noiphostarray [:toarray $noiphost] вызывает сбой скрипта, потому что он никогда не сохраняет значение текущего IP в переменной $previousIP. Из-за этого скрипт постоянно обновляет IP-адрес, даже когда это не нужно, ведь он не менялся. Вот мой отлаженный скрипт, работающий на RouterOS версии 6.7:

    # No-IP автоматическое обновление Dynamic DNS

    #--------------- Измените значения в этом разделе под вашу конфигурацию ------------------

    # Данные пользователя No-IP
    :local noipuser "YOUR-NO-IP-USERNAME";
    :local noippass "YOUR-NO-IP-PASSWORD";

    # Установите имя хоста или метку сети, которую надо обновлять
    :local noiphost "YOUR-NO-IP-HOSTNAME";

    # Укажите интерфейс, который получает динамический IP-адрес
    :local inetinterface "INTERFACE-THAT-YOU-WANT-TO-UPDATE-IP-ADDRESS";

    #------------------------------------------------------------------------------------
    # Больше изменений не требуется

    :global previousIP;

    :if ([/interface get $inetinterface value-name=running]) do={
    # Получаем текущий IP на интерфейсе
      :local currentIP [/ip address get [find interface="$inetinterface" disabled=no] address];

    # Отрезаем маску сети у IP-адреса
      :for i from=( [:len $currentIP] - 1) to=0 do={
          :if ( [:pick $currentIP $i] = "/") do={
              :set currentIP [:pick $currentIP 0 $i];
          }
      }

    :if ($currentIP != $previousIP) do={
    :log info "No-IP: Текущий IP $currentIP не равен предыдущему IP, нужно обновить";
    :set previousIP $currentIP;
    :local url "http://dynupdate.no-ip.com/nic/update\3Fmyip=$currentIP";
    :log info "No-IP: Отправка обновления для $noiphost";
    /tool fetch url=($url . "&hostname=$noiphost") user=$noipuser password=$noippass mode=http dst-path=("no-ip_ddns_update-" . $host . ".txt")
    :log info "No-IP: Хост $noiphost обновлен на No-IP с IP $currentIP";

    } else={
    :log info "No-IP: Предыдущий IP $previousIP совпадает с текущим, обновление не требуется";
    }
    } else={
      :log info "No-IP: Интерфейс $inetinterface сейчас не работает, обновление не выполняется.";
    }

    Благодарности Riverron http://wiki.mikrotik.com/wiki/User:Riverron
     
     
     
    IMD
    Guest
    #2
    0
    05.06.2014 16:27:00
    Привет, у меня есть RB2011UAS-2HnD-IN с версией ОС v6.12, и скрипт постоянно пишет в лог: Current IP (A.B.C.D) не равен предыдущему IP (), требуется обновление. ПРИМЕЧАНИЕ 1: IP скрыт. ПРИМЕЧАНИЕ 2: я изменил эту строку: :log info “No-IP: Current IP ($currentIP) не равен предыдущему IP ($previousIP), требуется обновление”;

    Скрипт НЕ сохраняет значение previousIP, поэтому обновление всегда происходит, что неправильно. Есть идеи?
     
     
     
    rextended
    Guest
    #3
    0
    05.06.2014 22:38:00
    Совет? ИСПОЛЬЗУЙТЕ ФУНКЦИЮ ПОИСКА. http://forum.mikrotik.com/t/problem-with-no-ip-script-update/77731/1
     
     
     
    letsjump
    Guest
    #4
    0
    26.12.2015 13:52:00
    Поскольку у меня возникли проблемы при обновлении, я решил изменить этот скрипт, сделав previousIP локальной переменной с IP, полученным через DNS: :local previousIP [:resolve "$noiphost"]; вот обновлённый скрипт:

    # No-IP автоматическое обновление динамического DNS

    #--------------- Измените значения в этом разделе под вашу конфигурацию ------------------

    # Учётные данные пользователя No-IP
    :local noipuser "your@email.com"
    :local noippass "yourpassword"

    # Установите имя хоста или метку сети для обновления.
    # Имена с пробелами не поддерживаются. Замените значение в кавычках на ваши имена хостов.
    # Для указания нескольких хостов разделяйте их запятыми.
    :local noiphost "yourname.ddns.net"

    # Укажите имя интерфейса, который получает динамический IP-адрес
    :local inetinterface "yourinterface"

    #------------------------------------------------------------------------------------
    # Больше изменений не требуется

    #:global previousIP;

    :if ([/interface get $inetinterface value-name=running]) do={
    # Получаем текущий IP на интерфейсе
      :local currentIP [/ip address get [find interface="$inetinterface" disabled=no] address];

    # Убираем маску сети из IP-адреса
      :for i from=( [:len $currentIP] - 1) to=0 do={
          :if ( [:pick $currentIP $i] = "/") do={
              :set currentIP [:pick $currentIP 0 $i];
          }
      }

      :local previousIP [:resolve "$noiphost"];

      :log info "IP из DNS: $previousIP, IP интерфейса: $currentIP";

      :if ($currentIP != $previousIP) do={
         :log info "No-IP: Текущий IP $currentIP не совпадает с предыдущим IP $previousIP, требуется обновление";
        # :set previousIP $currentIP;
         :local url "http://dynupdate.no-ip.com/nic/update\3Fmyip=$currentIP";
         :log info "No-IP: Отправка обновления для $noiphost";
         /tool fetch url=($url . "&hostname=$noiphost") user=$noipuser password=$noippass mode=http dst-path=("no-ip_ddns_update-" . $host . ".txt")
         :log info "No-IP: Хост $noiphost обновлён на No-IP с IP $currentIP";
         
      } else={
      :log info "No-IP: Предыдущий IP $previousIP совпадает с текущим IP, обновление не требуется";
      }
    } else={
      :log info "No-IP: $inetinterface сейчас не активен, обновление не будет выполнено.";
    }
     
     
     
    hostgator1
    Guest
    #5
    0
    24.02.2016 05:47:00
    Этот скрипт работает на версии 6.34.2? Спасибо.
     
     
     
    nightowl
    Guest
    #6
    0
    25.02.2016 00:20:00
    Этот скрипт обновления Noip для Mikrotik работает на версии 6.27 и успешно пережил обновление до 6.34.1.

    Вам всё ещё нужно настроить планировщик системы, просто измените on-event, чтобы он совпадал с именем скрипта:

    /system scheduler add comment="Update No-IP DDNS" disabled=no interval=5m name=no-ip_ddns_update on-event=no-ip_ddns_update policy=read,write,test
     
     
     
    hostgator1
    Guest
    #7
    0
    25.02.2016 05:55:00
    Спасибо, всё работает!
     
     
     
    hjmargarido
    Guest
    #8
    0
    22.05.2016 20:07:00
    Вроде бы всё работает, но IP на странице no-ip не обновляется... Использую версию 6.36rc13.
     
     
     
    kokkolo
    Guest
    #9
    0
    24.09.2016 23:01:00
    Я упростил весь скрипт вот так, и он работает на RouterOS 6.33.5. Надеюсь, будет полезно.  
    ##############Настройки скрипта##################  

    :local NOIPUser "your_uname"  
    :local NOIPPass "your_passwd"  
    :local WANInter "ether1"  

    ###############################################  

    :local NOIPDomain "$NOIPUser.no-ip.org"  

    :local IpCurrent [:resolve myip.opendns.com server=208.67.222.222];
    :put $IpCurrent  

    :if ([:resolve $NOIPDomain] != $IpCurrent) do={
         /tool fetch mode=http user=$NOIPUser password=$NOIPPass url="http://dynupdate.no-ip.com/nic/update\3Fhostname=$NOIPDomain&myip=$Ipcurrent" keep-result=no  
         :log info "NO-IP Update: $NOIPDomain - $IpCurrent"  
    }
     
     
     
    spamdog
    Guest
    #10
    0
    26.10.2016 11:16:00
    Привет! Скрипт работает с версии 6.36, но планировщик его не запустил.
     
     
     
    qbek
    Guest
    #11
    0
    05.11.2016 17:40:00
    Я заметил то же самое с июня 2016. Мне приходят письма: «Пожалуйста, подтвердите ваш hostname, иначе он будет удалён». В скрипт ничего не менялось. Сейчас у меня 6.35 на Mikrotik. Есть какие-то решения?
     
     
     
    letsjump
    Guest
    #12
    0
    17.10.2017 16:45:00
    Ещё одно рабочее решение для 6.40.3:  
    # Автоматическое обновление Dynamic DNS через No-IP

    #--------------- Измените значения в этом разделе под вашу конфигурацию ------------------

    # Учётные данные No-IP  
    :local noipuser "YOURNOIPUSER"  
    :local noippass "YOURPASS"

    # Укажите hostname или метку сети, которую нужно обновлять.  
    # Hostname с пробелами не поддерживаются. Замените значение в кавычках на ваши хосты.  
    # Чтобы указать несколько хостов, разделяйте их запятыми.  
    :local noiphost "YOURNOIP.ddns.net"

    # Укажите имя интерфейса, который получает динамический IP  
    :local inetinterface "pppoe-out1"

    #------------------------------------------------------------------------------------  
    # Дальше менять ничего не нужно

    #:global previousIP;

    :if ([/interface get $inetinterface value-name=running]) do={

    # Получаем текущий IP на интерфейсе

    :local currentIP [:put [:pick [/ip address get [:pick [find interface=$inetinterface] 1] address] 0 [:find [/ip address get [:pick [find interface=$inetinterface] 1] address] "/"]]];

    # Убираем маску подсети из IP-адреса  
      :for i from=( [:len $currentIP] - 1) to=0 do={
         :if ( [:pick $currentIP $i] = "/") do={
              :set currentIP [:pick $currentIP 0 $i];
          }  
      }

      :local previousIP [:resolve "$noiphost"];

      :log info "DNS IP: $previousIP, IP интерфейса: $currentIP";

      :if ($currentIP != $previousIP) do={  
         :log info "No-IP: Текущий IP $currentIP не совпадает с предыдущим $previousIP, требуется обновление";  
        # :set previousIP $currentIP;  
         :local url "http://dynupdate.no-ip.com/nic/update\3Fmyip=$currentIP";  
         :log info "No-IP: Отправка обновления для $noiphost";  
         /tool fetch url=($url . "&hostname=$noiphost") user=$noipuser password=$noippass mode=http dst-path=("no-ip_ddns_update-" . $host . ".txt")  
         :log info "No-IP: Хост $noiphost обновлён на No-IP с IP $currentIP";  
       
      } else={  
      :log info "No-IP: Предыдущий IP $previousIP совпадает с текущим, обновление не требуется";  
      }  
    } else={  
      :log info "No-IP: Интерфейс $inetinterface не запущен, обновление не будет выполнено.";  
    }
     
     
     
    linhchivas
    Guest
    #13
    0
    29.12.2017 11:10:00
    Это не работает с моей версией роутера 6.36.2. Можешь помочь?
     
     
     
    luizamorimsouza
    Guest
    #14
    0
    09.08.2018 02:06:00
    Попробуй заменить on-event=no-ip_ddns_update на on-event=“/system script run no-ip_ddns_update”. У меня сработало.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры