Edited at

value-domainのDDNSをHTTPSで更新

More than 1 year has passed since last update.


参考にさせていただいた記事

Raspiで動かすvalue-domainのDDNSスクリプト



シンプルだけどIP変更チェック付きのValue DomainのDDNSアップデートスクリプト

お二方が記事を書かれた当時、value-domainのDDNSを更新するURLはHTTPSに対応していなかったようです。

丸パクリして参考にさせていただき、HTTPSで更新するようにhttp://sを追記しました。それだけです。

全く新規性がありません。。。


ドメインの情報

value-domainにアクセスし、ドメインとパスワードを確認します。

デフォルトだとパスワードがログインパスワードが入っているようなので、DDNS更新用にパスワードを変更します。


スクリプトを丸パクリ


/etc/update_ddns.conf

# Place this file on /etc/update_ddns.conf

# SECURITY: run `chmod 600 /etc/update_ddns.conf'
# to make it unreadable by non-root users.
DOMAIN=***.***
PASSWORD=**************
HOST=*


/etc/update_valuedomain_ddns

#!/bin/bash

CONFIG_FILE='/etc/update_ddns.conf'
IP_CACHE_FILE='/tmp/update_ddns_ip'
DDNS_CACHE_FILE='/tmp/update_ddns_result'

# sources DOMAIN= , PASSWORD= and HOST=
source $CONFIG_FILE

old_ip=`[ -e $IP_CACHE_FILE ] && cat $IP_CACHE_FILE || echo ''`
new_ip=`wget --quiet -O - 'https://dyn.value-domain.com/cgi-bin/dyn.fcg?ip'`
if [ "$old_ip" = "$new_ip" ]; then
echo "NO CHANGE ($new_ip)"
logger -t UPDATE_DDNS "INFO: NO CHANGE ($new_ip)"
exit 0
fi

url="https://dyn.value-domain.com/cgi-bin/dyn.fcg?d=$DOMAIN&p=$PASSWORD&h=$HOST&i="
result=0
wget --quiet -O - "$url" 2>/dev/null | tee $DDNS_CACHE_FILE | grep 'status=0' >/dev/null && result=1

if (( !$result )); then
echo `date` 'FAILED'
logger -t UPDATE_DDNS "ERROR: FAILED result:" `cat $DDNS_CACHE_FILE`
exit 1
fi

echo $new_ip > $IP_CACHE_FILE

echo "UPDATED ($new_ip)"
logger -t UPDATE_DDNS "INFO: UPDATED with new IP:$new_ip"
exit 0


本当に丸パクリです。


権限変更してcrontabで実行

$ sudo chmod 600 /etc/update_ddns.conf

$ sudo chmod 755 /etc/update_valuedomain_ddns
$ sudo crontab -e

*/8 * * * * sh /etc/update_valuedomain_ddnsを追記します。

$ sudo dmesg | grep DDNS

ちゃんと8分ごとにチェックしているか確認します。

動いています。