Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • 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
    GoDaddy Dynamic DNS

    GoDaddy Dynamic DNS

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    GoDaddy Dynamic DNS, RouterOS
     
    tristanwalter
    Guest
    #1
    0
    09.07.2018 16:14:00
    Новичок в скриптинге Mikrotik и ищу помощь. У меня есть PowerShell-скрипт, который я хочу конвертировать в скрипт для Mikrotik. Скрипт обновляет IP для домена, хостящегося на GoDaddy. Хотелось бы получать IP-адрес с интерфейса, а не с внешнего сайта.

    $domain = 'your.domain.to.update'  # ваш домен  
    $name = 'name_of_host'  # имя A-записи для обновления  
    $key = 'key'  # ключ для GoDaddy developer API  
    $secret = 'Secret'  # секрет для GoDaddy developer API  

    $headers = @{}  
    $headers["Authorization"] = 'sso-key ' + $key + ':' + $secret
    $result = Invoke-WebRequest https://api.godaddy.com/v1/domains/$domain/records/A/$name -method get -headers $headers  
    $content = ConvertFrom-Json $result.content  
    $dnsIp = $content.data  

    # Получаем публичный IP, для этого есть несколько сайтов.  
    $currentIp = Invoke-RestMethod http://ipinfo.io/json | Select -exp ip  

    if ( $currentIp -ne $dnsIp) {  
       $Request = @{ttl=3600;data=$currentIp }  
       $JSON = Convertto-Json $request  
       Invoke-WebRequest https://api.godaddy.com/v1/domains/$domain/records/A/$name -method put -headers $headers -Body $json -ContentType "application/json"  
    }  

    Альтернативно вот версия на bash:

    domain=""   # ваш домен  
    name=""     # имя A-записи для обновления  
    key=""      # ключ для GoDaddy developer API  
    secret=""   # секрет для GoDaddy developer API  

    headers="Authorization: sso-key $key:$secret"  

    # echo $headers  

    result=$(curl -s -X GET -H "$headers" "https://api.godaddy.com/v1/domains/$domain/records/A/$name")  

    dnsIp=$(echo $result | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b")
    # echo "dnsIp:" $dnsIp  

    # Получаем публичный IP, есть несколько сайтов для этого.  
    ret=$(curl -s GET "http://ipinfo.io/json")  
    currentIp=$(echo $ret | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b")
    # echo "currentIp:" $currentIp  

    if [ $dnsIp != $currentIp ];
    then  
    # echo "IPs не совпадают"  
    request='{"data":"'$currentIp'","ttl":3600}'  
    # echo $request  
    nresult=$(curl -i -s -X PUT \  
    -H "$headers" \  
    -H "Content-Type: application/json" \  
    -d $request "https://api.godaddy.com/v1/domains/$domain/records/A/$name")  
    # echo $nresult  
    fi
     
     
     
    nansenat16
    Guest
    #2
    0
    02.08.2019 15:23:00
    Я написал скрипт для обновления DDNS https://gist.github.com/nansenat16/bbedb728a486b4a7fb76ae031995a317
     
     
     
    tristanwalter
    Guest
    #3
    0
    05.08.2019 14:35:00
    Спасибо, nansenat16, за пример. Вижу, что начиная с версии 6.44 был добавлен http-header-field. Я был занят исправлением проблем с обновлениями 6.44.x и не заметил изменений в fetch.
     
     
     
    Tdaddysimi
    Guest
    #4
    0
    07.08.2019 14:33:00
    Есть какие-нибудь новости по этому поводу? У меня есть пара доменов на GoDaddy, которые я бы хотел, чтобы мой тик автоматически обновлялся на них.
     
     
     
    jdodge
    Guest
    #5
    0
    12.08.2019 18:13:00
    Ты когда-нибудь думал об использовании .sn.mynetname.net, встроенного в ОС в разделе IP > Cloud? Например, если у тебя есть домен stuff.net от GoDaddy (фу!), и ты хочешь, чтобы omaha.stuff.net указывал на твой WAN роутера, то можно использовать встроенный адрес myname.net от Mikrotik в качестве цели cname. Допустим, твой адрес 830708af0128.sn.myname.net — тогда ты создаёшь cname для omaha.stuff.net и указываешь на 830708af0128.sn.myname.net.

    Я так уже давно пользуюсь — работает с любым DNS-провайдером, даже если он не поддерживает DDNS и обновления. Пока проблем не было. Если меняешь роутер — у тебя новый MAC/адрес, просто обновляешь cname под новый. Если меняешь DNS-провайдера — всё просто, не нужно менять клиент.
     
     
     
    carlosedp
    Guest
    #6
    0
    12.10.2020 16:03:00
    Я обновил скрипт, который был выше, сделав логику проще: текущий IP берётся с публичного сервиса и обновляется соответственно.

    #GoDaddy DDNS Update Script  
    #Тестировалось на RouterOS 6.45.2 (минимальная версия RouterOS 6.44)  
    #Дата: 2020/10/12  
    #Для работы скрипта нужны политики "read,write,policy,test" для работы с глобальными переменными.

    # Создать расписание для запуска  
    # /system scheduler add name=update-ddns interval=10m on-event=godaddy-ddns

    :local Domain "Domain"  
    :local Hostname "Hostname"  
    :local APIKey "GoDaddy Key"  
    :local APISecret "GoDaddy Secret"  

    # Параметры DDNS  
    :local ddnsURL "https://api.godaddy.com/v1/domains/$Domain/records/A/$Hostname"

    # Получаем текущий IP  
    :global currentIP  
    :local IPGetURL "https://ipecho.net/plain"  
    :local result [/tool fetch url=$IPGetURL http-method=get as-value output=user]

    :if ($result->"status" = "finished") do={  
       :set currentIP ($result->"data")  
    } else={  
       :log error ("DDNS: Ошибка получения текущего IP с $IPGetURL")  
       :err "Ошибка получения текущего IP"  
    }

    # Сохраняем глобальную переменную для проверки необходимости обновления  
    :global lastConfiguredIP  
    :if ([:typeof [:global lastConfiguredIP]] = nil) do={ :global lastConfiguredIP 0.0.0.0 } else={ :set lastConfiguredIP $lastConfiguredIP }

    :if ($currentIP != $lastConfiguredIP) do={  
       :log info "DDNS: Обновляем $Hostname.$Domain на IP: $currentIP"  
       :local ddnsipjson "[{\"type\":\"A\", \"name\":\"$Hostname\", \"data\":\"$currentIP\", \"ttl\":3600}]"
       :local result [/tool fetch url=$ddnsURL http-method=put http-data=$ddnsipjson http-header-field="content-type: application/json,Authorization: sso-key $APIKey:$APISecret" as-value output=user]
       :if ($result->"status" = "finished") do={  
           :log info ("DDNS: Домен $Hostname.$Domain настроен на IP $currentIP.")  
           :global lastConfiguredIP $currentIP  
       } else={  
           :log error ("DDNS: Ошибка установки домена $Hostname.$Domain на IP $currentIP. $result->status")  
       }  
    } else={  
       :log info "DDNS: Текущий IP домена $Hostname.$Domain $currentIP не изменился. Обновление не требуется."  
    }

    Это не зависит от настройки правильного IP на локальном интерфейсе, например, в случаях, когда роутер выходит в интернет через другой мост.
     
     
     
    jausovec
    Guest
    #7
    0
    12.06.2024 09:23:00
    Привет. Возможно, GoDaddy что-то изменили, потому что с 30.05 у меня выходит ошибка: Download from api.godaddy.com FAILED: Fetch failed with status 403. Это только у меня или у кого-то ещё тоже?
     
     
     
    Japaanc
    Guest
    #8
    0
    27.07.2024 08:19:00
    Со мной то же самое, только сейчас заметил.
     
     
     
    Japaanc
    Guest
    #9
    0
    17.08.2024 06:32:00
    Ответ от GoDaddy: «Здравствуйте! Спасибо, что обратились к нам по поводу недавних изменений в нашем Domain API. Хотим сообщить, что недавно мы обновили требования к Domain API. В рамках этого обновления теперь для использования API клиентам необходимо иметь в аккаунте 50 и более доменов. К сожалению, поскольку у вас сейчас только 1 домен в аккаунте, доступ к API для вас заблокирован. Однако хотим вас заверить, что у вас по-прежнему есть доступ к OTE API без каких-либо ограничений. Приносим извинения за возможные недоразумения или неудобства. Если у вас есть дополнительные вопросы или нужна помощь по другим нашим услугам, пожалуйста, не стесняйтесь обращаться. Спасибо за понимание. С уважением, команда поддержки API.»
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры