Динамический DNS
Что такое динамический DNS думаю знают все. Для тех кто не знает напомню, провайдер при подключении к интернет выделяет компьютеру случайный IP-адрес. Дабы не платить провайдеру денег за постоянный IP придумали динамический DNS, программа-клиент на компьютере пользователя отслеживает какой IP выдал провайдер и автоматически прописывает его в DNS, тем самым делая возможным обращение по имени. Зачем это нужно? Бывают разные применения, например, на домашнем компьютере поднят web-сервер и нужно чтобы сайт расположенный на нем посещали люди.
Существует достаточно много сервисов, предоставляющий подобный функционал, однако, если нужно реализовать подобное на собственном домене, скорее всего эти сервисы попросят заплатить денег.
Я уже писал о том как можно реализовать динамический DNS если у Вас есть сервер с ISPmanager, однако решение описанное в той заметке очень уж специфично для моих личных обстоятельств. Сейчас мои сайты благополочно переехали на выделенный сервер, где есть запущенный Apache, а значит ISPmanager доступен через браузер, соответственно вызывать mgrctl из командной строки у меня больше надобности нет.
Сегодня я перенес свой DynDNS туда же на выделенный сервер, набросав вот такой скрипт.
#!/bin/sh
echo Content-type: text/plain
echo
IP=`/usr/bin/host sub.dom.ru ns1.dom.ru |/usr/bin/awk '/sub/ { print $4 }'`
CMD='/usr/bin/fetch -q -o /dev/null'
POST='http://127.0.0.1/manager/ispmgr?\
authinfo=dns:123&func=domain.sublist.edit&\
name=sub&sdtype=A&sok=yes&plid=dom.ru&'
echo -n 'Your IP is '
echo -n $REMOTE_ADDR
if [ $IP != $REMOTE_ADDR ]; then
echo -n '. Updating... '
`$CMD $POST'elid=sub+A++'$IP'&addr='$REMOTE_ADDR'`
echo Done.
else
echo '. Noting to do.'
fi
Данный скрипт можно положить куда-нибудь в cgi-bin одного из сайтов на сервере и вызвать его из браузера. При этом скрипт спросит у DNS сервера текущий IP для домена третьего уровня sub.dom.ru, авторизуется в ISPmanager на сервере пользователем dns с паролем 123 и установит IP для sub.dom.ru тем, с которого была вызвана страничка.
Из интересного:
- Нарыл блог о веб-программировании, поскольку сам я далеко не программист, многое для меня в новинку и интересно, вот, например, способ доставания поискового запроса из серверных переменных. Сайт однозначно в закладки.
- Наступившие морозы, опять заставили задуматься о новом авто, поисковик подбросил сайт по теме новые автомобили — цены, тесты, отзывы владельцев. Почитал, сделал выводы, правда денег на новую машину пока все равно нет.
- У Вас есть офис? Кафе, ресторан? Если Вам требуется ремонт офиса, то данный ресурс будет Вам интересен и скорее всего даже полезен. Рекомендую.



2 комментария на запись "Динамический DNS"
Отлично, только лучше для узнавания element id не host использовать, а grep'нуть файл зоны (если AP_DOC_ROOT при сборке апачевого suexec позволяет это делать), надежнее, или даже более true way спросить у манагера записи зоны.
В моем случае host спрашивает у named'а на сервере с манагером, как мне показалось это наиболее простое решение. Да, предложенные тобой варианты тоже возможны.
Оставить комментарий