artem
25.12.2014
5589

Скрипт на mikrotik для динамической смены доменного имени на сервисе nic.ru

Ниже будет рассмотрен скрипт, который будет «резолвить» Ваше доменное имя — проверять какой IP на данный момент закреплен за ним, затем проверяет IP на внешнем интерфейсе (на WAN-порту), если данные IP не совпадают, скрипт выполнит https запрос на api.nic.ru на смену IP-адреса в привязке к домену.

# set DDNS variables: UserName; Password; HostName; WAN-interface
:local dDNSdomain «your.domain.ru» — Ваш домен
:local dDNSuser «some_username» — имя пользователя на nic.ru с правом смены ip на ломен
:local dDNSpass «some_password» — пароль пользователя nic.ru
:local dDNSInterfaceName «your_WAN_interface» — внешний (WAN) интерфейс микротика
:local dDNSCurrentIP [:resolve «$dDNSdomain»] — проверка какой IP указан за Вашим доменным именем
:log info («DDNS: Check resolve: $dDNSCurrentIP»)
:local LocalIP [ /ip address get [/ip address find interface=$dDNSInterfaceName ] address ] — получение IP на WAN-порту Микротика
:local LocalIP [:pick $LocalIP 0 [:find $LocalIP «/»]] — приводим IP к необходимому виду 

Далее сравниваем две полученные переменные и при их различие отправляем запрос вида: 

https://api.nic.ru/dyndns/update?hostname=myhost1.test.ru,myhost2.test.ru&myip=192.168.1.1

на nic.ru


:if ($LocalIP != $dDNSCurrentIP) do={
:log info ("DDNS: ddns IP: $dDNSCurrentIP.")
:log info ("DDNS: local IP: $LocalIP.")
:log info ("DDNS: ddns update now!")
/tool fetch url="https://$dDNSuser:$dDNSpass@api.nic.ru/dyndns/update?hostname=$dDNSdomain&myip=$LocalIP"

Далее проводится проверка корректности обновления DNS.

:log info ("DDNS: Check ddns IP...")
/tool fetch url="https://api.nic.ru/dyndns/checkip/" dst-path="/nic.checkip.html"
delay 1
:local dDNSCurrentIP [/file get nic.checkip.html contents]
:local dDNSCurrentIP [:pick $dDNSCurrentIP ([:find $dDNSCurrentIP ": " -1] + 2) [:find $dDNSCurrentIP "</body>" -1]]
:if ($LocalIP = $dDNSCurrentIP) do={
:log info ("DDNS: ddns IP: $dDNSCurrentIP")
:log info ("DDNS: Updated Successfully!.")
}
} else={
:log info ("DDNS: NO ddns update needed!")
}
 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices