VALUE DOMAIN でダイナミックDNSを利用するための更新スクリプト。
DiCE DynamicDNS Client (自宅でインターネットサーバー) などのDNS更新ツールを使えばいい話だけど、Linux にインストールする方法や使い方を覚えるよりも、シェルスクリプト + Cron で自作したほうが早そうだったので自作した。
以前、Xrea SSHホスト登録に シェルスクリプト + Cron で自作したのでそのとき参考にしたものを元に改造することにする。
SSHホスト登録用のスクリプトは下記を参考にした。
xrea(coreserver) SSHホスト登録スクリプト – Kerosoft : Modus Operandi
事前準備
ダイナミックDNS機能を使えるように設定しておく。下記を参照
ダイナミックDNS機能のご利用方法
※スクリプトでドメインパスワードを使用するので、管理画面のドメインロックの変更からドメインパスワードを設定しておく。
スクリプトで使用する API の意味を確認しておく。下記のページに使用するものは全てかかれてある。
ダイナミックDNS設定方法と注意事項
ダイナミックDNS 更新スクリプト
処理の手順としては、VALUE DOMAIN で用意されている IPアドレス検出CGI を利用して、自分の IP アドレスを確認し、前回確認した時の IP アドレスと変わっている場合は、VALUE DOMAIN が用意しているダイナミックDNS を更新するアクセス先へ通知する。
ついでに、直近のIPアドレスをチェックした時刻とダイナミックDNS の更新通知を行った場合のログを残す。
課題としては、VALUE DOMAIN で用意されている IPアドレス検出CGI を利用しないで、グローバルIPアドレスを取得できるようにしたい。(※ルータから取得する?)
# IP チェック処理 CHKLOGFILE="ip_chk.log" MYIPFILE="global_ip.log" date > $CHKLOGFILE MYIP=`wget -q -O - http://dyn.value-domain.com/cgi-bin/dyn.fcg?ip` OLDMYIP=`cut -f 1 $MYIPFILE` if test $MYIP = $OLDMYIP ; then echo "Not Change IP" >> $CHKLOGFILE exit fi echo "Change IP" >> $CHKLOGFILE # DDNS 登録処理 REGLOGFILE="ddns_reg.log" echo "****************************************" >> $REGLOGFILE echo "DDNS Registration" >> $REGLOGFILE date >> $REGLOGFILE echo "$OLDMYIP → $MYIP" >> $REGLOGFILE MYDOMAIN="ドメイン名" MYPW="パスワード" MYHOST="ホスト名" DYNURL="http://dyn.value-domain.com/cgi-bin/dyn.fcg?d=$MYDOMAIN&p=$MYPW&h=$MYHOST&i=$MYIP" RET=`wget -q -O - $DYNURL` echo "$RET" >> $REGLOGFILE if [ `echo "$RET" | egrep "status=0"` ] ; then echo $MYIP > $MYIPFILE echo "Registration Successful." else echo "Registation Failed." fi exit
※ドメイン名、パスワード、ホスト名は各自で設定すること。
Cron の設定
/etc/crontab を編集して、定期的にシェルスクリプトを実行するようにする。
Cron の設定方法は分かり易い解説が色々あるのでそちらにを参照。
cron の設定ガイド
参考
その他、参照したもの。
七転び八起き グローバルIPアドレスを自動で通知したい(2)
if 文と test コマンド – UNIX & Linux コマンド・シェルスクリプト リファレンス
Linuxコマンド一覧 [cut]
VALUE DOMAIN で DNS設定
Bash基礎文法最速マスター – 何かしらの言語による記述を解析する日記
トラックバック一覧
この記事にはトラックバックがついていません。