Продолжим тему и модернизируем скрипт так, чтобы он мог работать с сервисом no-ip.com
Ничего кардинально нового тут нет, скорее выбросили лишнее от предыдущего скрипта т.к логика работы сервиса проста и не требует принудительного "пинка" если ip адрес не менялся длительное время.
Сервис производит авторизацию средствами самого web сервера, удобное решение, но довольно спорное т.к данные передаются без шифрования, а следовательно перехватив данные можно получить доступ ко всему аккаунту, а не только изменять настройки конкретной зоны. Хотя это мое личное мнение.
Для запроса обновления данных зоны используется следующий http запрос
http://username:password@dynupdate.no-ip.com/nic/update?hostname=mytest.testdomain.com&myip=1.2.3.4
Нам нужно передать
логин учетной записи сервиса
пароль
dns имя обновляемого узла
новый ip адрес
Все делаем по описанию в предыдущем посте за исключением самого скрипта.
:local login "login";
:local pass "password";
:local ddnshost "you_zone.ddns.net";
:local wan "wan";
:local tmpFile "myddns.info";
:local ddnsip [:resolve $ddnshost];
:local localip [/ip addres get [/ip address find interface=$wan ] address];
:local localip [:pick $localip 0 [:find $localip "/"]];
:global ddnsinterval;
:if ($localip != $ddnsip) do={
/tool fetch url="http://$login:$pass@dynupdate.no-ip.com/nic/update?hostname=$ddnshost&myip=$localip" dst-path="$tmpFile"
delay 2;
:local fileid [/file find name="$tmpFile"];
:local fileContent [/file get $fileid contents];
/file remove $fileid;
:log info "DDNS: mismatch DNS records, correction is made. $ddnshost ($ddnsip) changed to $localip";
}
Параметры:
login - логин учетной записи no-ip.com
pass - пароль
ddnshost - Ваш домен. Указывается полностью. Помним, что no-ip.com предоставляет несколько зон для бесплатного использования
wan - имя интерфейса, смотрящего в интернет
tmpFile - имя временного файла который будет создаваться в ходе работы скрипта и содержать ответ сервера
Как и в предыдущий раз, прописываем удобный интервал запуска и тестируем.