とりあえず更新のみ、あらかじめホスト名の登録を済ませておく必要があるよ。RouterOS 6.5 で動作確認済み。
{ :local user "username" :local pass "password" :local host "host.example.com" :global lastIP /tool fetch url="http://app.be-grace.co.jp/ip.php" dst-path="ip.txt" :local ip [/file get "ip.txt" contents] :if ($ip != $lastIP) do={ :local url "http://dynupdate.no-ip.com/nic/update\3Fhostname=$host&myip=$ip&hostname=$host" /tool fetch url=$url user=$user password=$pass dst-path="No-IP.txt" :set lastIP $ip } }
user と pass と host を自分のアカウントの情報に書きかえたら、あとは Scheduler に登録しておくといい感じ。
こんな感じで、On Event のところにスクリプトをそのまま書く。
Start Time を startup にすると、RouterBOARD が起動したら自動的に実行されるようになる。Start Date は初期値のままで大丈夫。Interval は適当に。Policy のところは read, write, policy, test をチェックする必要があって、どこかを外すと何かが動かなくなるんだけど、細かいことはよくわからない。
あ、画像では Enabled のチェックが外れているけど、これはチェックしておかないと実行されないよ。
動作としては、RouterBOARD にグローバルIPが割り当てられていなくても動くように、サーバー側のスクリプトでIPアドレスを返すようにしているよ。http://app.be-grace.co.jp/ip.php というのがそのスクリプトで、中身は以下の通り。
<?php echo $_SERVER['REMOTE_ADDR']; ?>
ちょっと工夫すると色々できるのが RouterBOARD のいいところだね。