Top
Software [new]
Software [old]
Vodafone702NK
Linux, FreeBSD
Perl Memo
Others
Books
About Me
Link
Blog
E-Mail
ENV CHECK
000000000
 Software [new]: DynamicDNS 更新スクリプト(仮)

▲戻る

■ これは何?
DynamicDNSサービスサイトで取得したドメインのIP更新を自動で行うPerlスクリプトプログラムです。
WindowsではDiCEが有名ですが、UNIXな環境で自分の希望にあうツールが無かった為自作してみました。
主な機能と対応しているDynamicDNSサービスについては以下を参照ください。


このスクリプトは4年ぐらい前に作ったもので自分が今現在使ってるNo-IP以外は
現在動作テストしていないのでその他は上手く更新できないかもしれません。
特に有料になったZiVEなど。。。



主な機能
 ・複数のドメインを一度に更新
 ・ローカル内のPCでも外部URLにアクセスしグローバルIPの取得が可能
 ・更新結果をメールで通知

対応DynamicDNSサービス一覧
・No-IP       -  http://www.no-ip.com/
・ZiVE        -  http://www.zive.org/
・DynDNS      -  http://www.dyndns.org/
・ddo.jp      -  http://ddo.jp/
・ieServer    -  http://ieserver.net/
・DDNS@mysv  -  http://ddns.mysv.org/



■ 対応OS
・FreeBSD
・NetBSD
・OpenBSD
・Linux
・その他、UNIX系OS

※使用にはPerl5と、Socket、BASE64モジュールが必要です



■ ダウンロード
DynamicDNS 更新スクリプト(仮)はフリーソフトですので、無料でお使いいただけます。
著作権については放棄はしませんが、改造や再配布など自由に行ってくれて構いません。

http://fix.s168.xrea.com/download/ddns-1.00.zip   ( 13.8 KB )



■ 使用方法
ddns.plの初期設定項目を書き換えてddns.plを実行するだけで使えます。(list.plとmail.plの書き換えは不要)
動作テストをして正常に動いているようならcron等に登録しておけば自動で更新出来ると思います。
うちの環境では正常に動いていますが他の環境ではもしかしたらうまく動かないかもしれません。
万が一障害が発生しても責任はもてませんので、使用に関しては自己責任でお願いします。m(_ _)m


■ 初期設定項目の補足説明

≫ 登録情報の設定について

@Account(
'DDNS番号 フルドメイン名1 ユーザ名1 パスワード1',
'DDNS番号 フルドメイン名2 ユーザ名2 パスワード2',
'DDNS番号 フルドメイン名3 ユーザ名3 パスワード3',
'DDNS番号 フルドメイン名4 ユーザ名4 パスワード4'
);


デフォルトの記述を見ると大体分かると思いますが1行に1アカウントの設定になります。
同じようにして行を増やしていけば複数追加可能です。
※一行に設定する各項目の間は 半角スペース を入れてください
DDNS番号は下記を参考に半角数字で設定してください。

0 : No-IP
1 : ZiVE
2 : DynDNS
3 : ddo.jp (ユーザ名はサブドメイン名 ※hoge.ddo.jpの場合hoge )
4 : ieServer (ユーザー名はサブドメイン名、フルドメイン名はドメイン名(dip.jp等)で設定。※IPの設定は無効)
5 : DDNS@mysv



≫ IPの設定について

IPの取得方法は以下の4つあり、変数($FlgIP)で設定します。

(0) - $IPから取得
(1) - ifconfigから取得
(2) - 外部URLから取得
(3) - new.ipから取得

(0)は $IP に設定されたIPを使い更新します。
主に固定IPや、IPを手動で設定する場合はこの設定にしてください。

(1)はifconfigコマンドの出力結果からIPを取得します。
$Intf にはifconfigコマンドでIPが表示されるインターフェース名を設定してください。

(2)の『外部URLから取得』については$CgiUrlで指定したURLにアクセスして
そのURLの出力結果からIPアドレスを取得しています。
(失敗した場合に備えて3回まで再接続をするようにしています)
デフォルトではdyndns.orgに設置されているCGIからIPを取得するようにしていますが、
出来ればIPを出力するCGIを自分で設置するようにしてください。
IPを表示するCGIはこんな感じのスクリプトをサーバに置くだけでOKです。

(3)の『new.ipから取得』を設定した場合は、スクリプト実行後にnew.ipファイルからIPを取得して更新を行います。
ですので ddns.pl を実行する前に何らかの方法でnew.ipにIPを記録するようにしてください。



■ 参考パーミッション設定
% chmod 500 ./ddns.pl     > スクリプトファイル(メイン)
% chmod 500 ./list.pl     > スクリプトファイル(DDNS毎の設定の読込み処理用)
% chmod 500 ./mail.pl     > スクリプトファイル(メールの送信処理用)
% chmod 500 ./jcode.pl   > スクリプトファイル(歌代 和正さん作の漢字コード変換ライブラリ)
% chmod 600 ./new.ip      > 更新時に変更するIPの記録されたファイル
% chmod 600 ./old.ip      > 前回更新したIPを記録するファイル
% chmod 600 ./dat/        > DDNSデータのあるディレクトリ
% chmod 600 ./dat/*       > DDNSデータファイル

※ddns.plにはパスワードが記録されるのでファイルオーナー以外からは見えない設定を推薦。


■ 動作確認環境
FreeBSD 4.8-RELEASE
Perl ver.5


Copyright (C) 2005 fix All Rights Reserved.