DDNSの設定
DDNSサービスに「ieServer」を選択した場合
ieServerのサイトから頂いてきました。
[root@KURO-BOX ~]# wget http://ieserver.net/ddns-update.txt -O /usr/local/bin/ddns-update.pl
--00:01:15-- http://ieserver.net/ddns-update.txt
=> `/usr/local/bin/ddns-update.pl'
ieserver.net をDNSに問いあわせています... 61.197.187.238
ieserver.net|61.197.187.238|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 2,214 (2.2K) [text/plain]
100%[=================================================================>] 2,214 --.--K/s
00:01:15 (3.42 MB/s) - `/usr/local/bin/ddns-update.pl' を保存しました [2214/2214]
変更するのは「# ieServer.Netにて取得したアカウント(サブドメイン)情報を記入」のところくらい・・・
変更を保存したらCronに設定してOK
[root@KURO-BOX ~]# cat /usr/local/bin/ddns-update.pl
#!/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 = "current_ip";
# 2. 設定状況ログファイル
$LOG_FILE = "ip_update.log";
# 回線IP確認ページURL
$REMOTE_ADDR_CHK = "http://ieserver.net/ipcheck.shtml";
# DDNS更新ページURL
# wgetをSSL接続可能でビルドしているなら、https:// での接続を推奨
$DDNS_UPDATE = "http://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;
--------------------------------------------------------------------------------