/ freebsd

Dynamic DNS Update Script [dns.he.net]

Многие сервисы такие как dns.he.net или entrydns (в сожалению уже сдохший) предоставляют возможность обновлять IP домена простым curl-запросом.

Еще давно был мной сделан простенький скрипт для того чтобы проверять изменился ли текущий IP на интерфейсе и апдейтить ddns сервис.

Вот сам скрипт:

#!/bin/sh
IFNAME="em1"
IPFILE="/tmp/my.ip"
if ! /bin/test -f $IPFILE
 then
/bin/echo "DDNS temp file not found"
/usr/bin/touch $IPFILE
/bin/echo "0.0.0.0" > $IPFILE
fi
myip=`/sbin/ifconfig $IFNAME | /usr/bin/grep "inet" | cut -d " " -f 2`
oldip=`/bin/cat $IPFILE`
if [ $myip != $oldip ]
then
echo "your ip changed, rewriting dns record"
/usr/local/bin/curl -4 "http://YOUR_URL:KEY@dyn.dns.he.net/nic/update?hostname=YOUR_URL"
/usr/bin/printf "\n"
/bin/echo $myip > $IPFILE
else
/bin/echo "your ip had not changed yet. skip update"
fi

в данном скрипте использовался сервис dns.he.net – подробнее о формате curl запроса прямо на главной проекта https://dns.he.net/

далее ставим права на файл chmod 750 updateip.sh и в crontab -e -u root делаем новое задание раз в 10 минут

*/10 * * * * /root/updateip.sh > /var/log/ip.log

теперь раз в 10 минут будет провертся состояние интерфейса em1 и в случае изменения IP адреса на данном интерфейсе, будет обновлена запись на DDNS сервисе..

Dynamic DNS Update Script [dns.he.net]
Share this

Subscribe to Somewhere Nowhere