前回の備忘録の続きです。今回はDDO.JPへのIP自動更新の設定を記載します。
1.以下のようなPerlスクリプトを/usr/ddnsに「ipchk.pl」として保存。
#!/usr/bin/perl
#
$CRT_IPF = “/usr/ddns/”. $ARGV[0] . “_CRT_IP.dat”;
$NEW_IPF = “/usr/ddns/”. $ARGV[0] . “_NEW_IP.dat”;
$LOG = ‘/var/log/ddns.log’;
$HTTP_LOG =’/var/log/ddns_http.log’;
$DEBUG = 0 ;
#————————
# Current IP-File Read
#————————
open INPUT,”$CRT_IPF \n”;
$CRT_IP=<INPUT>;
close INPUT;
if($DEBUG){
print “CRT::$CRT_IPF”;
}
system(“wget -q -O $NEW_IPF http://info.ddo.jp/remote_addr.php”);
open(INPUT,$NEW_IPF);
$c = <INPUT>;
$c = <INPUT>;
$stp = index($c,”REMOTE_ADDR:”)+12;
$edp = length($c);
$NEW_IP = substr($c,$stp,($edp-$stp));
if($DEBUG){
print “c:”.$c.” stp:”.$stp.” len:”.($edp-$stp).”\n” ;
print “NEW_IP: $NEW_IP \n”;
print “OLD_IP: $CRT_IP \n”;
}
close(INPUT);
if ($NEW_IP ne “” and $CRT_IP ne $NEW_IP) {
if($DEBUG){
print “IP.dat UPDATE !!! \n” ;
print “IP Address update: $CRT_IP to $NEW_IP\n”;
}
open (OUTPUT ,”>$CRT_IPF”);
print OUTPUT $NEW_IP;
close OUTPUT;
$server = “http://free.ddo.jp/dnsupdate.php”;
$post_data = ” –post-data ‘ dn=$ARGV[0].ddo.jp&pw=$ARGV[1]&ip=$NEW_IP'”;
$now_string = localtime;
system(“wget -q -O $HTTP_LOG $post_data $server \n”);
open (OUTPUT ,”>>$LOG”);
print OUTPUT “$now_string $server \n”;
print OUTPUT “$now_string DDNS IP Address Updated. $CRT_IP to $NEW_IP \n”;
close OUTPUT;
}
2.実行権限を与えます。
>chmod 755 /usr/ddns/ipchk.pl
3.crontab にて定期的に実行するよう登録します。[ddo.jp ID] [ddo.jp PASS]にはIDとパスワードを記載します。(毎時28分と56分に実行する設定)
>crontab -e
>*/28 * * * * perl /usr/ddns/ipchk.pl [ddo.jp ID] [ddo.jp PASS]
以上で設定は完了です。本スクリプトはどこかのサイトを参考にしたのですが、忘れてしまいました。似たような記事があれば教えてください。
続きはこちら
トップはこちら
【関連記事】
EveryDNS – DiCE以外のIP更新通知 –
Value Domain ダイナミックDNSを自動更新
@NIFTYのダイナミックDNSの自動更新
[…] 前回の備忘録の続きです。PHPとMysqlをインストールします。 […]