Привет, freedns.afraig.org предлагает динамическую DNS-услугу, но для этого мне нужно запустить следующий скрипт на Linux на Mikrotik. Есть кто-то, кто может мне с этим помочь? Хочу, чтобы он обновлялся каждые 5 минут, а затем удалял URL, который загрузил, через несколько секунд (иначе я буду сидеть с 288 записями в день). Код от afraid.org: rem my.domain.co.za wget -q --read-timeout=0.0 --waitretry=5 --tries=400 --background http://freedns.afraid.org/dynamic/update.php?U3hWWThhdE8wcHFRMzN<остальная часть URL> или я могу просто загрузить URL: http://freedns.afraid.org/dynamic/update.php?U3hWWThhdE8wcHFRMzN<остальная часть URL>, но его также нужно удалить. Спасибо!
Измени свой код на rem my.domain.co.za wget -q --read-timeout=0.0 --waitretry=5 --tries=400 --background http://freedns.afraid.org/dynamic/update.php?U3hWWThhdE8wcHFRMzN<остальная часть URL> -O=afraid.org добавил " -O= afraid.org " для перезаписи одного и того же файла (в этом случае я назвал файл afraid.org, но ты можешь изменить его) Ты нашел, куда вставить код?
Что касается использования wget для обновления вашего динамического IP-адреса на afraid.org, боюсь (без шуток), это в данный момент невозможно. Однако, если у вас установлена RouterOS версии 3.+, вы можете сделать это с помощью инструмента fetch, как показано ниже. Я в настоящее время использую это на RoS 3.16, и это работает безупречно. Примечание: токен обновления в приведенном ниже примере был изменен, чтобы защитить невинных и мой роутер. /tool fetch address="freedns.afraid.org" host="freedns.afraid.org" mode=http src-path="dynamic/update.php\?bnptVU90TjcTWDVsMjNlAMk81WUg6MzYyNjYxMg==" keep-result=no Важные моменты, которые следует заметить/запомнить: Параметр: src-path обратите внимание на "" после .php, это требуется для экранирования ? Параметр: keep-result - может быть установлен в да или нет - Нет - Установив это в нет, мы говорим роутеру игнорировать файл ответа от afraid.org Да - Установив это в да, мы говорим роутеру сохранить результат последнего обновления в /file с именем .php? Вы можете использовать планировщик системы для выполнения этого скрипта через заданные интервалы, если хотите. С уважением, Джон Эннис - Vortex Consulting
Кто-нибудь использует DDNS-сервисы www.freedns.afraid.org на устройствах Mikrotik? Я пытаюсь настроить на маршрутизаторе Mikrotik использование DDNS-сервиса от freedns.afraid.org, но не нашел ни скрипта, ни решения.
Я использую этот простой скрипт. Просто скопируйте и выполните в командной строке. Затем вам нужно обновить скрипт System/Scheduler с вашим внешним интерфейсом и ключом. Этот скрипт получает IP-адрес из интерфейса pppoe-client. Тем не менее, вы можете легко это изменить. /system scheduler add disabled=no interval=30s name="dynamic dns" on-event="/ interface pppoe-clie\ nt {\r\ \n\t:global ExternalIP\r\ \n\t:local clientip\r\ \n\t:local clientstatus\r\ \n\tmonitor External once do={:set clientip \$\"local-address\"; :set client\ status \$status}\r\ \n\t:if (\$clientstatus=\"connected\" and \$ExternalIP!=\$clientip) do={\r\ \n\t\t:log info \"Внешний IP изменился с \$ExternalIP на \$clientip\"\r\ \n\t\t/ tool fetch url=\"http://freedns.afraid.org/dynamic/update.php\\\?<put_key>\" dst-path=ExternalIP.txt\r\ \n\t\t:set ExternalIP \$clientip\r\ \n\t}\r\ \n}" policy=ftp,read,write,policy,test,winbox,password,sniff,api \ start-time=startup
Спасибо, это было достаточно просто. Если кто-то делает это, не забудьте также экранировать ? здесь, например: /tool fetch url=“http://freedns.afraid.org/dynamic/update.php?YOURTOKENFROMTHEURL=”. Как вы думаете, имеет ли значение, как часто вы отправляете этот запрос? Похоже, сервер сообщает, что ничего не нужно обновлять, если IP тот же, так что, вероятно, каждый 5 минут или что-то в этом роде будет вполне допустимо.
Я написал свой собственный скрипт. Самое главное!!! Скрипт работает, если у вас несколько доменов. ############## Скрипт FreeDNS.afraid.org ################## ############## РЕДАКЦИЯ ПАРСЕРА ################## ############## СОЗДАНО LESHIY_ODESSA ##################
# Укажите "Прямой URL", который равен https://freedns.afraid.org/dynamic/ # Если версия RouterOS 5.xx, то уберите шифрование из URL - "https" смените на "http". Также смотрите ниже. # Перед знаком "?" поставьте обратный слэш "\". :global "direct-url" "http://freedns.afraid.org/dynamic/update.php\?dedC0TirYibYdzBYnnhVRiJJb8Q6iDY1Mji3mQ=="
# Укажите URL API "ASCII" # Войдите в свой аккаунт и откройте страницу https://freedns.afraid.org/api/ # Затем скопируйте URL вашего сайта - Доступные интерфейсы API: ASCII (!!! НЕ XML !!!) # ВНИМАНИЕ!!!! Перед знаком вопроса поставьте обратный слэш "\". # Если версия RouterOS 5.xx, то уберите шифрование из URL - "https" смените на "http". :global "api-url" "http://freedns.afraid.org/api/\?action=getdyndns&sha=62egb6606ci46cbe6eo8iga61de6ia101858a08n"
# Укажите ваш домен или поддомен. :global "dns-domain" "name.com"
# Определите переменные для внешнего (WAN) интерфейса # Чувствительно к регистру. :global "out-interface" "pppoe"
# !!!!!!!!!!!!!!!!! Больше ничего редактировать не нужно!!!!!!!!!!!!!!!!!
# Проверьте наличие файла с IP домена - freedns.txt :if ([:len [/file find name=freedns.txt]] > 0) do={ } else={ /tool fetch url=$"api-url" dst-path="/freedns.txt" } # Узнайте IP-адрес домена, используя API и парсинг. # Разделите файл :local "result" [/file get freedns.txt contents] :local "startloc" ([:find $"result" $"dns-domain"] + ([:len $"dns-domain"] + 1)) :local "endloc" ([:find $"result" $"direct-url" -1] -1) :global "dns-domain-ip" [:pick $"result" $"startloc" $"endloc"]
# Найдите текущий IP-адрес на внешнем интерфейсе :global "current-ip" [/ip address get [find interface=$"out-interface"] address]
# Из полученных IP-адресов необходимо исключить сетевую маску :set "current-ip" [:pick $"current-ip" 0 ([:len $"current-ip"]-3) ]
# Сравните внешний IP с IP-адресом DNS домена. :if ($"current-ip" != $"dns-domain-ip") do={
# Если они разные, отправьте на freedns.afraid.org наш внешний IP, используя Прямой URL :log info ("Сервис Dynamic DNS: старый IP адрес $"dns-domain-ip" для $"dns-domain" ИЗМЕНЕН на -> $"current-ip"") /tool fetch url=$"direct-url" keep-result=no # Скачайте файл с новым IP через 5 секунд. :delay 5 /tool fetch url=$"api-url" dst-path="/freedns.txt" } else={ # Чтобы не засорять лог, эту строку нужно закомментировать. :log info ("IP адрес НЕ ИЗМЕНЕН, обновление не требуется") }
# Поскольку с версии RouterOS 6.0rc12 поддерживается шифрование /tool fetch mode=https # В :global "direct-url" нужно изменить на httpS:// # Для версии RouterOS 6.xx # /tool fetch mode=https url=$"direct url" # :global "direct-url" "https://freedns.afraid.org/dynamic/update.php\?UVdjU2lzQmQwSkdjZW9aWkNleTdJdXFtOjg2NTI0NzE="
Есть ли что-то, что нужно изменить для RouterOS версии 6.20? Я пробовал этот скрипт, скопировал свой ключ после вопросительного знака с = в конце и изменил имя интерфейса на “pppoe-out1”, так как это название интерфейса клиента PPPoE в списке интерфейсов. Что я делаю не так? Спасибо.
Я сделал все, как сказала LESHIYODESSA. Но я не вижу никакой информации в логах, она появляется только один раз, когда я запускаю скрипт. Я просто хочу понять, работает это или нет.