Jump to content

Recommended Posts

  • 3 weeks later...
Posted

Вчера только настраивал!

Надо ещё проверку смены ип делать, чтобы не долбить сервис напрямую слишком часто

:global currentIP;

:local newIP [/ip address get [find interface="интерфейс-с-инетом"] address];

:if ($newIP != $currentIP) \
do={ \
:set currentIP $newIP; \
:log info "ip address $currentIP changed to $newIP"; \
/system script run фетч-скрипт; \
} else={ \
:log info "No change of IP"; \
}

 

Вот этот скрипт уже можно часто запускать.

  • 3 months later...
Posted (edited)

Вот сделал скрипт. Самое главное, что он работает когда несколько доменов.

Внимательно читаем комментарии.

 

 

##############	Script FreeDNS.afraid.org	##################
##############	PARSER EDITION	##################
##############	CREATED LESHIY_ODESSA	##################

# Указываем "Direct URL", который находится https://freedns.afraid.org/dynamic/
# Если версия RouterOS 5.xx, то убрать из URL шифрование - "https" поменять на "http". Так же смотри ниже.
# Перед знаком "?" поставьте обратный слеш "\".
:global "direct-url" "http://freedns.afraid.org/dynamic/update.php\?КVуjН2lzQmQwSkdkвW9atеNкeTdJаXFtOjg7NTО04zE="

# Указываем URL API "ASCII"
# Войдите под своим аккаунтом и откройте страницу  https://freedns.afraid.org/api/ 
# Затем скопируйте свой URL - Available API Interfaces : ASCII (!!! НЕ XML !!!)
# ВНИМАНИЕ !!!! - Перед вопросительным знаком поставьте обратный слеш "\".
# Если версия RouterOS 5.xx, то убрать из URL шифрование - "https" поменять на "http".
:global "api-url" "http://freedns.afraid.org/api/\?action=getdyndns&sha=62ebн4404cd46сbe38eа8faк01be7dа101478a58b"

# Указываем ваш домен или субдомен.
:global "dns-domain" "name.com"

# Задаем переменную для внешнего (WAN) интерфейса 
# при DUAL ACCESS указываем PPPoE (PPTP) интерфейс. Учитываем регистр букв.
: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 с помощью Direct URL
:log info ("Service Dynamic DNS: old IP address $"dns-domain-ip" for $"dns-domain" CHANGED to -> $"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 address is NOT CHANGED, the update is not required")
}

# Начиная с версии RouterOS version 6.0rc12 поддерживается шифрование /tool fetch mode=https
# В :global "direct-url" нужно тоже изменить на https://
# Для версии RouterOS 6.xx 
# /tool fetch mode=https url=$"direct-url"

#		http://wiki.mikrotik.com/wiki/Manual:Scripting
#		http://wiki.mikrotik.com/wiki/Manual:Scripting-examples
#		http://wiki.mikrotik.com/wiki/Manual:Tools/Fetch
#		http://forum.ixbt.com/topic.cgi?id=14:60498-86#2373

##############Script FreeDNS.afraid.org##################

Edited by leshiy_odessa
  • 2 years later...
Posted

Вот сделал скрипт. Самое главное, что он работает когда несколько доменов.

Внимательно читаем комментарии.

 

 

##############	Script FreeDNS.afraid.org	##################
##############	PARSER EDITION	##################
##############	CREATED LESHIY_ODESSA	##################

# Указываем "Direct URL", который находится https://freedns.afraid.org/dynamic/
# Если версия RouterOS 5.xx, то убрать из URL шифрование - "https" поменять на "http". Так же смотри ниже.
# Перед знаком "?" поставьте обратный слеш "\".
:global "direct-url" "http://freedns.afraid.org/dynamic/update.php\?КVуjН2lzQmQwSkdkвW9atеNкeTdJаXFtOjg7NTО04zE="

# Указываем URL API "ASCII"
# Войдите под своим аккаунтом и откройте страницу  https://freedns.afraid.org/api/ 
# Затем скопируйте свой URL - Available API Interfaces : ASCII (!!! НЕ XML !!!)
# ВНИМАНИЕ !!!! - Перед вопросительным знаком поставьте обратный слеш "\".
# Если версия RouterOS 5.xx, то убрать из URL шифрование - "https" поменять на "http".
:global "api-url" "http://freedns.afraid.org/api/\?action=getdyndns&sha=62ebн4404cd46сbe38eа8faк01be7dа101478a58b"

# Указываем ваш домен или субдомен.
:global "dns-domain" "name.com"

# Задаем переменную для внешнего (WAN) интерфейса 
# при DUAL ACCESS указываем PPPoE (PPTP) интерфейс. Учитываем регистр букв.
: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 с помощью Direct URL
:log info ("Service Dynamic DNS: old IP address $"dns-domain-ip" for $"dns-domain" CHANGED to -> $"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 address is NOT CHANGED, the update is not required")
}

# Начиная с версии RouterOS version 6.0rc12 поддерживается шифрование /tool fetch mode=https
# В :global "direct-url" нужно тоже изменить на https://
# Для версии RouterOS 6.xx 
# /tool fetch mode=https url=$"direct-url"

#		http://wiki.mikrotik.com/wiki/Manual:Scripting
#		http://wiki.mikrotik.com/wiki/Manual:Scripting-examples
#		http://wiki.mikrotik.com/wiki/Manual:Tools/Fetch
#		http://forum.ixbt.com/topic.cgi?id=14:60498-86#2373

##############Script FreeDNS.afraid.org##################

Доброго времени суток всем!!!

тут попытался разобраться с сервисом http://freedns.afraid.org/ так как no-ip.com хоть вроде бы пока как бы и бесплатный но с некоторого времени приходится обновлять свою учетку каждый месяц что не совсем удобно и поэтому решил посмотреть насчёт замены пробовал прикрутить к микротику вышеизложенный скрипт в результате некоторых танцев с бубном http://freedns.afraid.org/ схватил мои послания и всё бы хорошо но как то это разовые и нестабильные случаи и как сказано в описании что должно быть обязательно несколько доменов это критично для работы сервиса?? или только для скрипта??

Может есть ещё какие то идеи на этот счёт

И стоит ли связываться с этим сервисом какой у них интервал обновления информации.... в доменной сети

И может кто подскажет что нибудь другое что можно прикрутить к мкротику....

За ранее благодарен.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.