とりあえず更新のみ、あらかじめホスト名の登録を済ませておく必要があるよ。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 のいいところだね。
