ダイナミックDNSの更新スクリプト

MyDNSなどのダイナミックDNSの更新スクリプトを作ったのでメモ程度に残しておきます。

このスクリプトはhttp://blog.nogisawa.net/ip.phpを使い現在のIPを取得し、違っていたらBASIC認証で更新を行うというもの。これを5分おきぐらいにcronで走るように設定します。更にDNSの更新を待ってFTPの再起動も行います。ただしこれでは長期間更新が無かった場合にアカウントが使われていないと見なされ削除されてしまいます。それを回避する為IPアドレスを保存している一時ファイルを1日1回削除してやります。


cronには次のように設定(5分おきにチェック(上)、毎日昼12時に定期更新(下))

ご利用は自己責任で。

MyDNS以外でもDynamic DO!.jpなどBASIC認証を使うタイプのダイナミックDNSならどこでも使えると思います。(更新コマンドはこちらを参照)

FTPを更新するときわざわdigで取ってきてローカルのDNSが更新されるのを待ってから再起動するのは、FTPが名前解決をしてIPを取得する為です。ローカルのDNSが更新される前に再起動してしまうと、PASVで返すアドレスが古いままになってしまうので、それを回避しています。

また、このスクリプトをそのままコピペして使うと当サイトのip.phpを利用する事になりますので、ip.phpと同じ挙動をするものを自作して自分が持っている外部のサーバーに設置し、利用してください。ただREMOTE_ADDRを返すだけのプログラムなので5行程度で書くことができるはずです。