Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • 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
    Скрипт Dynu.com для динамического DNS

    Скрипт Dynu.com для динамического DNS

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Скрипт Dynu.com для динамического DNS, RouterOS
     
    chryoung
    Guest
    #1
    0
    18.12.2016 18:36:00
    Привет! Мой первый пост здесь, и я тоже новичок в Router OS. Я использую Dynu для динамического DNS, чтобы иметь возможность подключаться к устройствам в моей сети, у которых динамический IP на WAN. Dynu предоставляет этот скрипт, но когда я его загружаю, появляются ошибки. Может, кто-то тут заметит явные проблемы с синтаксисом? Заранее спасибо за помощь.

    /system script add name=Dynu policy=read,write,test source=":global ddnsuser your_Dynu_username :global ddnspass “your_Dynu_password” :global theinterface “WAN_Interface_Name” :global ddnshost “your_Dynu_hostname” :global ipddns [:resolve $ddnshost]; :global ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ] :if ([ :typeof $ipfresh ] = nil ) do={ :log info (“DynuDDNS: No IP address on $theinterface .”) } else={ :for i from=( [:len $ipfresh] - 1) to=0 do={ :if ( [:pick $ipfresh $i] = “/”) do={ :set ipfresh [:pick $ipfresh 0 $i]; } } :if ($ipddns != $ipfresh) do={ :log info (“DynuDDNS: IP-Dynu = $ipddns”) :log info (“DynuDDNS: IP-Fresh = $ipfresh”) :log info “DynuDDNS: Update IP needed, Sending UPDATE…!” :global str “/nic/update?hostname=$ddnshost&myip=$ipfresh” /tool fetch address=api.dynu.com src-path=$str mode=http user=$ddnsuser password=$ddnspass dst-path=(”/Dynu.".$ddnshost) :delay 1 :global str [/file find name=“Dynu.$ddnshost”]; /file remove $str :global ipddns $ipfresh :log info “DynuDDNS: IP updated to $ipfresh!” } else={ :log info “DynuDDNS: dont need changes”; } }
     
     
     
    k6ccc
    Guest
    #2
    0
    12.02.2019 03:57:00
    Я понимаю, что этой теме уже два года, но я в такой же ситуации. Я добавил информационные лог-записи повсюду и раскомментировал каждую строку, после чего запустил скрипт. Очевидно, он нормально выполнялся с логом, заполненным этими записями. Потом я начал с самого начала и убирал комментарии по одной строке, пока скрипт не перестал работать. В такой конфигурации у меня выводятся логи «Starting Dynu script», «Globals set» и «line 1», а дальше ничего. Да, имя интерфейса указано верно (фактически я скопировал его прямо из файла .rsc от вчерашнего вечера). Всё запускаю на модели RouterBOARD 750 r2 с RouterOS 6.43.2:

    :log info “Starting Dynu script”
    :global ddnsuser “user name redacted”
    :global ddnspass “password redacted”
    :global theinterface “E1-p10_DSL_Internet”
    :global ddnshost “The domain I’m trying to apply this to”
    :log info “Globals set”
    :global ipddns [:resolve $ddnshost];
    :log info “line 1”
    :global ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ]
    :log info “line 2”
    :if ([ :typeof $ipfresh ] = nil ) do={
      :log info “line 3”
      :log info (“DynuDDNS: No IP address on $theinterface.”)
      :log info “line 4”
    } else={
      :log info “line 5”
      :for i from=( [:len $ipfresh] - 1) to=0 do={
          :log info “line 6”
          :if ( [:pick $ipfresh $i] = “/”) do={
              :log info “line 7”
              :set ipfresh [:pick $ipfresh 0 $i];
              :log info “line 8”
          }
          :log info “line 9”
      }
      :log info “line 10”
      :if ($ipddns != $ipfresh) do={
          :log info “line 11”
          :log info (“DynuDDNS: IP-Dynu = $ipddns”)
          :log info (“DynuDDNS: IP-Fresh = $ipfresh”)
          :log info “line 13”
          :log info “DynuDDNS: Update IP needed, Sending UPDATE…!”
          :log info “line 14”
          :global str “/nic/update?hostname=$ddnshost&myip=$ipfresh”
          :log info “line 15”
          /tool fetch address=api.dynu.com src-path=$str mode=http user=$ddnsuser password=$ddnspass dst-path=# (“/Dynu.”.$ddnshost)
          :log info “line 16”
          :delay 1
          :log info “line 17”
          :global str [/file find name=“Dynu.$ddnshost”];
          :log info “line 18”
          /file remove $str
          :log info “line 19”
          :global ipddns $ipfresh
          :log info “line 20”
          :log info “DynuDDNS: IP updated to $ipfresh!”
          :log info “line 21”
      } else={
          :log info “line 22”
          :log info “DynuDDNS: dont need changes”;
          :log info “line 23”
      }
    }

    Какие идеи? Честно признаюсь, в скриптах я почти ничего не понимаю…
     
     
     
    HzMeister
    Guest
    #3
    0
    12.02.2019 08:13:00
    Я просто добавил mikrotik ddns в «dns records» на Dynu. Скрипты не нужны.
     
     
     
    Kampfwurst
    Guest
    #4
    0
    05.07.2019 06:12:00
    Я просто добавил Mikrotik DDNS в «dns records» на Dynu. Скрипты не нужны. Можешь объяснить, как это работает?
     
     
     
    Mefix
    Guest
    #5
    0
    24.01.2020 20:29:00
    Извиняюсь за поднятие старой темы, нужна запись DNS с адресным именем NULL (не вводить), Тип CNAME, Имя хоста: DDNS Name for Cloud, и отключить тип имени A. https://yadi.sk/i/ezOMuefy799YlQ
     
     
     
    yoosmel
    Guest
    #6
    0
    20.08.2020 20:17:00
    Привет, это работает, когда облако находится за NAT. У меня же не работает.
     
     
     
    KCameron
    Guest
    #7
    0
    23.12.2021 18:45:00
    Я нашёл эту тему, когда гуглил, как заставить мою систему работать с dynu. Она помогла понять, что нужно делать. Но я не думаю, что скрипту обязательно отслеживать IP-адрес. Этот скрипт отлично работает у меня и кажется гораздо проще: /tool fetch url=“ https://api.dynu.com/nic/update?username=myusername&password=mypassword ” Я просто запускаю его по расписанию каждый час. Похоже, всё работает идеально.
     
     
     
    Sob
    Guest
    #8
    0
    24.12.2021 19:34:00
    Конечно, это работает, но ваш провайдер DDNS может быть не в восторге, потому что вы делаете бессмысленные обновления, которые на самом деле ничего не меняют, и создаёте дополнительную нагрузку на их сервер. И, конечно, вы сами его не перегрузите, но если бы все поступали так же и не все считали бы одного раза в час достаточно… вы понимаете, к чему я веду.
     
     
     
    Shahid
    Guest
    #9
    0
    08.10.2022 22:09:00
    Рабочий последний код

    /tool fetch mode=http url="http://api.ipify.org" src-path="" dst-path=/dyn.html  
    :local currentIP [/file get dyn.html contents]
    :log warning "Обнаружен публичный IP $currentIP"  
    ######################################################  

    :global ddnsuser "username"  
    :global ddnspass "password"  
    :global ddnshost "host.mywire.org"  
    :global ipddns [:resolve $ddnshost];
    :log warning "Текущий DNS $ipddns"  
    /file/remove dyn.html  

    :if ($ipddns != $currentIP) do={  
    :log warning ("Обновляю IP = $currentIP")  
    :global str "/nic/update?username=$ddnsuser&password=$ddnspass&hostname=$ddnshost&myi­p=$currentIP"  
    /tool fetch address=api.dynu.com src-path=$str mode=https dst-path=("/Dynu.".$ddnshost)  
    :delay 1  
    :global str [/file find name="Dynu.$ddnshost"];
    /file remove $str  
    :global ipddns $currentIP  
    :log info "DynuDDNS: IP обновлён на $currentIP!"  
    } else={  
    :log info "Менять не надо, IP уже обновлён";  
    } }
     
     
     
    rextended
    Guest
    #10
    0
    08.10.2022 23:12:00
    Лучше бы убрать весь этот беспорядок, включая ненужный лог.
     
     
     
    rextended
    Guest
    #11
    0
    08.10.2022 23:13:00
    :local ddnsuser  "username"  
    :local ddnspass  "password"  
    :local ddnshost  "host.mywire.org"  

    :local currentIP ([/tool fetch url="http://api.ipify.org" as-value output=user]->"data")
    :local dnsIP     [:resolve $ddnshost]
    :if ($currentIP != $dnsIP) do={  
       :local update "https://api.dynu.com/nic/update?username=$ddnsuser&password=$ddnspass&hostname=$ddnshost&myi­p=$currentIP"  
       /tool fetch url=$update keep-result=no  
       :log info "DYNU $ddnshost обновлён: старый IP был $dnsIP, новый IP — $currentIP"  
    }
     
     
     
    Jotne
    Guest
    #12
    0
    09.10.2022 06:45:00
    @Shahid Используй глобальную переменную в скрипте только если планируешь использовать её в другом скрипте или позже. Лучше используй локальную переменную.
     
     
     
    Shahid
    Guest
    #13
    0
    09.10.2022 06:51:00
    Конечно. Спасибо за предложения.
     
     
     
    Shahid
    Guest
    #14
    0
    09.10.2022 06:53:00
    Хорошо, я не очень разбираюсь в скриптах. Я просто заставил это работать, так что выложил здесь. Спасибо за улучшение.
     
     
     
    MDAcosta
    Guest
    #15
    0
    25.03.2023 17:48:00
    Почему никто не следит за текущим динамическим IPv6 с роутера? Это потому, что полученный IPv6 — это адрес с суффиксом, а не полный, как тот, что можно получить с периферийного устройства?
     
     
     
    k6ccc
    Guest
    #16
    0
    25.03.2023 18:03:00
    Очень простой ответ. Не используем IPv6…
     
     
     
    redskilldough
    Guest
    #17
    0
    02.08.2024 12:06:00
    Спасибо за это.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры