遅ればせながら、DDNSをやってみましたので、その覚え書きです。
1)ieServerにDDNSを登録する。
https://ieserver.net にアクセスして、「新規ユーザー登録」を行う。

特に迷う事はないですね。適当に決めます。
登録後、暫く待たないと、DNS名でアクセスできません。
2)DDNSでの動作確認。
そのままパソコンからでは、動作確認出来ないので、iPhoneとかの別回線からアクセスしてみます。
3)IPアドレスの自動更新設定。
私はMacなので、DiCE等が使えませんので、perlスクリプトをlaunchdに登録して使ってみます。
参考サイト:http://mizusawa.dip.jp/~mizusawa/G3web/blogcgi/macintosh/875.html
http://loumo.jp/wp/archive/20140411120647/
まずは、perlスクリプトの準備、
#!/usr/bin/perl -w
# ieserverを更新するためのスクリプト
# 参考 「Perl/Webアクセス - Ebisawa's Wiki」http://www.ebisawa.co.jp/wiki/index.php?Perl%2FWeb%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9
# 変数の設定
my $username = "xxxxxx" ; # ユーザーネーム
my $userpassword = "xxxxxx" ; # パスワード
my $domain = "dip.jp" ; # ieserverにセットするドメイン"myhome.cx" "or.cf" "jpn.ph" "fam.cx" "dip.jp" の5種類から選択
my $filedir = "/Users/xxxxxx/Desktop/" ;# ファイルを書き出すディレクトリ。空だと書き出さない。ファイル名は「ieserver_update.html」
# モジュールの宣言
use strict;
use LWP::UserAgent;
use HTTP::Request::Common( "GET" ); # GETメソッドで送信する
print "==================UPDATE BEGIN=================\n"; # 処理の始まりを表示
my $ua = new LWP::UserAgent; # インスタンスの生成
$ua->timeout( 10 ); # 10秒でタイムアウト
my $req = GET( "http://ieserver.net/cgi-bin/dip.cgi?username=${username}&password=${userpassword}&domain=${domain}&updatehost=Go" ); # 更新用URLに投げる
my $res = $ua->request( $req ); # htmlの受取
# ドメイン名:xxxxx.xxx.jpのIPアドレスは現在xxx.xxx.xxx.xxxに設定されています。(20xx-xx-xx xx:xx:xx 更新) だけ取り出したいところ
my $kekka = $res->as_string; # 文字列に変換
print "$kekka\n"; # 結果表示
# ファイルとして保存する
if ($filedir ne ""){ # 空でなければ書き出し処理
my $filename = "${filedir}ieserver_update.html";
&write_file($filename,$kekka,0);
}
print "==================UPDATE END=================\n";
exit;
# ===================================
# ファイルの書き出し
# &write_file(ファイル名,内容,モード); のように呼び出す。
# モードは0で上書き、1で追記
sub write_file {
my $filename = $_[0];
my $content = $_[1];
my $mode = $_[2];
# 書き込みファイルのオープン
if ($mode eq "0") { # 上書き
open (FILE,">$filename")|| die "ファイル「$filename」に出力できません";
} else {
if ($mode eq "1") { # 追記
open (FILE,">>$filename")|| die "ファイル「$filename」に出力できません";
}
}
print (FILE "$content") ; # ファイルに出力
#ファイルのクローズ
close (FILE) ;
}
この内容をコピペして、xxxxxxを自分で登録したものに置き換え、ieServerIpUpdate.pl等で保存する。
保存先は適当。とりあえず、ユーザーディレクトリ配下にbatchと作って保存。
次に、launchdへの登録。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>ieServerUpdate</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/perl</string>
<string>/Users/xxxxxx/batch/ieServerIpUpdate.pl</string>
</array>
<key>LowPriorityIO</key>
<true/>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>3600</integer>
</dict>
</plist>
xxxxxxを保存したユーザーに変更すれば、1時間毎に動作するファイルが出来るはず。
これを、ターミナルから
cd ~/batch launchctl load ./ieServerIpUpdate.plist launchctl list |grep ieServerIpUpdate - 0 ieServerIpUpdate
で、登録完了。
