Dynamic DNS - namecheap.com

Автоматизация при помощи встроенного скриптового языка и RouterOS API
Ответить
Аватара пользователя
freewood
Сообщения: 45
Зарегистрирован: 03 мар 2016, 14:47
Откуда: Зеленоград

Dynamic DNS - namecheap.com

Сообщение freewood »

Обновление записей у регистратора namecheap.com

Простенький скрипт, уже давно пользуюсь. Обновляет с помощью http запроса.

Для начала заходим в настройки DNS записей домена и включаем поддержку DynamicDNS. При включении нам выдадут пароль для обновления записей только этого домена.
namecheap-dyndns-enable.png
namecheap-dyndns-enable.png (9.97 КБ) 10461 просмотр
Далее в микротике делаем скрипт со следующим содержимым:

Код: Выделить всё

#Поменяйте интерфейс на тот который у Вас wan
:local iface "ether1-wan";

#Тут мы получаем IP адрес без маски
/ip address
:local ip [get [find interface=$iface] address];
:local ipaddr [:pick $ip 0 [:find $ip "/"]];

#Тут можно указать основной домен и несколько поддоменов для обновления (ip адрес будет один для всех)
:local hosts {"@";"www"};

#Сюда пишем имя домена
:local domain "domain.name";

#Сюда вписываем пароль который нам выдали в админке домена
:local pwd "Dynamic DNS Password";


:foreach host in=$hosts do={

	:do {
		:local mainrec "https://dynamicdns.park-your-domain.com/update\3Fhost=$host&domain=$domain&password=$pwd&ip=$ipaddr";
		/tool fetch url="$mainrec" mode=https keep-result=no
		:log info "DNS record ".$host." updated"; }
		on-error={ :log info ("Something goes wrong while updating ".$host)}

};
Права ему выставляем только read.

У меня он вызывается другим скриптом, который проверяет, изменился ли IP адрес, что бы не спамить запросами. Но можно его дергать просто шедулером раз в 5 минут, к примеру.

Код: Выделить всё

/system scheduler
add interval=5m name="Dns updater" on-event=update-dns policy=read start-time=startup
update-dns - это имя скрипта
Ответить