超手抜き Dynamic DNS 更新法

マックで使う Dynamic DNS

 インターネットへの定額接続サービスが増えてきた昨今、お家でマックを使ったインターネットサーバーに挑戦したい人も増えていることだろう。

 さてここで問題は、どうやって自分が立てたサーバーの場所を教えるかである。 一々 IP アドレスを調べて教えるのも面倒だし、お遊び程度で、独自ドメイン名と固定 IP アドレスを取得して... というのも大袈裟だ。 そこで、Dynamic DNS サービスが登場する。 割り当て IP アドレスが接続しなおすたびに変わってしまう場合でも、このサービスに登録することでホスト名からサーバーのアドレスを引けるようになる。

 IP アドレスを更新する方法としては、自分に割り当てられた IP アドレスを確認して、以前 Dynamic DNS サービスに登録した IP アドレスと異なっていれば、新しい IP アドレスを登録する。 と言うのがまっとうな方法であり、そのためのソフト(スクリプト)もある。 ―― のだが、サービス提供者によっては、Windows や UNIX 系のシステム用の自動更新ソフト(スクリプト)は用意されているのにマック用は無かったりする場合がある。(たぶん、Macintosh など見たこともないのだろう)

 マック用が無いからといってあきらめなくともよい。 大抵のダイナミック DNS サービスには、特定の書式で HTTP リクエストを送ってやることで、「アクセスに使われた IP アドレスを DNS に登録してくれる」機能がある。 これを利用して、定期的に(1日1回)その時点の IP アドレスを再登録してやれば良いのである。(IP アドレスが変わってなければ無駄なトラフィックを発生させていることになるし、次の登録実行までに IP アドレスが変わってしまう可能性もあるので、あまりスマートな方法とは言えない)

 次のような AppleScript 書類を作成し実行専用で保存して起動しておくのだ。(サーバーマシンの起動項目にでも入れとく) アプリケーションとして保存し「実行後、自動的に終了しない」、「初期画面を表示しない」をチェック。

on idle
 set ddnsUpdate to "更新用書式"
 set tmpFolderPath to path to preferences folder as text
 set tmpFilePath to tmpFolderPath & "jp.ne.zone0.ddnsresult.html"
 set tmpFile to a reference to file tmpFilePath	
 tell application "URL Access Scripting"
  try
   download ddnsUpdate to tmpFile replacing yes with progress
  on error number errNo
   (*^_^*)
  end try
 end tell
	
 return 1 * days
end idle

※更新用書式の部分は DynDNS.org(Dynamic DNS Network Services, LLC.) の場合だと、

http://username:password@members.dyndns.org/nic/update?hostname=yourhost.dyndns.org&mx=yourhost.dyndns.org

のようにする。 username, password, yourhost.dyndns.org は自分が登録した内容に合わせて適切に設定する。 AppleScript 書類に埋め込む前に Web ブラウザで確認すると良い。 この書式(URL)はサービス提供者によってまちまちなので、提供者の Web で更新方法の解説を探すべし。

 このスクリプトは URL Access(「スクリプティング機能追加」に「URL Access Scripting」が必要)が使えるシステムでないと動かないので、Mac OS 8.6 以上を要求する。 ISDN TA、ADSL モデム、あるいはケーブルモデムなどを直接接続しているマックでも、ルーター経由で NAT/IP マスカレード接続しているマックからでも使える。

(2002/2/3)

 URL Access が使えない古いシステムな人のために Mac 用 ダイナミック DNS クライアントアプリケーションを作成してみた。 → SDDNSC マニュアル

(2002/2/6)

Copyright 2002 TAKAHASHI,Ryoji
All rights reserved.