SSブログ

ダイナミックDNSにieServerを使ってみる [雑記]

以前,ダイナミックDNSのサービスとして「Dynamic DO!.jp」を使った.その時は,無料でずっと使えたんだけど,7月ごろに規約が変わって,今はずっと無料ではなくなってしまった.無料で使い続ける方法もあるんだけど,その条件は,うちだと難しい...

というわけで,別のダイナミックDNSサービスを使ってみる.

いくつか比較して,今回は,ieServer.Netのサービスを使ってみる.もちろん無料だ.

使い方は,とても簡単.
新規ユーザー登録から,ユーザー名とか,希望するドメイン,あとメールアドレスとパスワードを登録する.ここで登録するユーザー名が,サブドメインとして使用されるようになる.

あとは,IPアドレスを自動更新するようにしてやれば,作業は完了.

自動更新のためのツール類は,ieServerで便利ツールとして紹介されている.うちはUbuntuなので,便利ツールのうち,「IPアドレス更新サンプルスクリプト」を利用させてもらうことにする.

では,具体的な作業だが,
まず,そのスクリプトをダウンロードする.
cd ~/
wget http://ieserver.net/ddns-update.txt


そしたら,/usr/local/下にddnsディレクトリを作って,そこにコピー.ファイル名はddns-update.plに変更しておく.
cd /usr/local
sudo mkdir ddns
sudo cp ~/ddns-update.txt /usr/local/ddns/ddns-update.pl


で,そのスクリプトに必要な情報を追記してやる.
sudo vi ddns-update.pl


具体的には,アカウント,ドメイン名,パスワードと,CURRENT_IP_FILE, LOG_FILEのパスを指定しておく.あと,$DDNS_UPDATEはhttpsアクセスにしておく.

念のためファイル全体を示しておこう.
#!/usr/bin/perl

# ieServer.Net 専用 DDNS IP アドレス更新スクリプト - ddns-update.pl
# 作成者:山本恭弘@Agora Inc. 作成日:2004/03/24
#
# 回線割り当てグローバルIPアドレスを確認し、変化があれば新IPアドレスを
# DDNSに登録。当コマンドを一定の間隔で実行し、IPアドレスの変化を監視&
# 更新処理する。利用には perl wget cron が利用可能である必要あり。
#
# 回線に割り当てられた IPアドレス は http://ieserver.net/ipcheck.shtml
# へのアクセスによって確認。
#
# cron にて当コマンドを等間隔で実行し、回線IPを確認。変化があればDDNSに
# IPアドレスを登録。DDNSサーバーへの負荷軽減の点から実行間隔は10分以上と
# すること。
# crontab設定例(/usr/local/ddns/ddns.plにスクリプトを置き10分間隔で実行)
# 5,15,25,35,45,55 * * * * /usr/local/ddns/ddns-update.pl

# 以下2ファイルの配置ディレクトリは好みに応じ設定
# 1. 設定IPアドレスワークファイル
$CURRENT_IP_FILE = "/usr/local/ddns/current_ip";

#  2. 設定状況ログファイル
$LOG_FILE        = "/usr/local/ddns/ip_update.log";

# 回線IP確認ページURL
$REMOTE_ADDR_CHK = "http://ieserver.net/ipcheck.shtml";
# DDNS更新ページURL
# wgetをSSL接続可能でビルドしているなら、https:// での接続を推奨
$DDNS_UPDATE     = "https://ieserver.net/cgi-bin/dip.cgi";

# ieServer.Netにて取得したアカウント(サブドメイン)情報を記入
$ACCOUNT         = "ユーザー登録したユーザー名";     # アカウント(サブドメイン)名設定
$DOMAIN          = "ユーザー登録で選択したドメイン名";     # ドメイン名設定
$PASSWORD        = "ユーザー登録で設定したパスワード";     # パスワード設定

if(!open(FILE,"$CURRENT_IP_FILE")) {
    $CURRENT_IP = '0.0.0.0';
    } else {
    $CURRENT_IP = <FILE>;
    close FILE;
}

$NEW_IP = '0.0.0.0';
$NEW_IP = `wget -q -O - $REMOTE_ADDR_CHK`;

if ($NEW_IP ne "0.0.0.0" and $CURRENT_IP ne $NEW_IP) {

    $STATUS = `wget -q -O - '$DDNS_UPDATE?username=$ACCOUNT&domain=$DOMAIN&password=$PASSWORD&updatehost=1'`;
    
    if ($STATUS =~ m/$NEW_IP/) {    
        open (FILE ,">$CURRENT_IP_FILE");
        print FILE $NEW_IP;
        close FILE;
        $TIME = localtime;
        open (FILE ,">>$LOG_FILE");
        print FILE "$TIME $ACCOUNT.$DOMAIN Updated $CURRENT_IP to $NEW_IP\n";
        close FILE;
    } else {
        $TIME = localtime;
        open (FILE ,">>$LOG_FILE");
        print FILE "$TIME $ACCOUNT.$DOMAIN Update aborted $CURRENT_IP to $NEW_IP\n";
        close FILE;
    }
}
exit;


そしたら,(パスワードが書かれてるので)アクセス権を変更して,
sudo chmod 700 ddns-update.pl


あとは,crontabで定期実行されるようにしておく.
sudo crontab -e
3-58/5 * * * * /usr/local/ddns/ddns-update.pl


これで完了.簡単だ.

なにより,無料で使えるieServer.Netに感謝.
タグ:DDNS ieServer
nice!(0)  トラックバック(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。