dyndns.com 用のシンプルなクライアント

dyndnsを調べてみると、IPアドレスを更新するには、以下のURLにアクセスするだけでよいようだ。

http://members.dyndns.org/nic/update?hostname=ホスト名&myip=IPアドレス

ただしこのページにはBASIC認証がかかっている。
dyndns用のクライアントを探したけど、どれも長くて管理が面倒くさそうなので自分で作ってみた。Linux用。wgetさえあれば動く。

crontab に以下のように登録すればOK。(20分おきの場合)

# crontab -e

*/20 * * * * /root/bin/dyndns_client.pl
  • dyndns_client.pl
#!/usr/bin/perl

use strict;
use warnings;

my $ID='ユーザID';
my $PW='パスワード';
my $MYHOST='ホスト名';

my $last_ip=`cat /tmp/last_ip`;
my $current_ip = (`wget -q -O - "http://checkip.dyndns.org/"` =~ m/([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/) && $1;
`echo -n $current_ip > /tmp/last_ip`;

if( $current_ip ne $last_ip ) {
        `wget -q -O - --http-user='$ID' --http-passwd='$PW' 'http://members.dyndns.org/nic/update?hostname=$MYHOST&myip=$current_ip'`;
}

IDとパスワードとホスト名だけ変えればOK。IPアドレスが変化したら更新する。