Windowsだと公式の更新クライアントが使えるんだけど、Linuxではダメなので、expectを使う。
参考サイト:お名前.com DDNS - scientia est potentia
expectの導入は何も考えずpacmanで良い。IPアドレスはcurl inet-ip.info
で得られる。以下ではtea-soak.orgとblog.tea-soak.orgを更新してみている。
export IP=`curl inet-ip.info`
expect -c "
spawn env LANG=C openssl s_client -connect ddnsclient.onamae.com:65010 -quiet
send \"LOGIN\n\"
send \"USERID:お名前.comのユーザ名\n\"
send \"PASSWORD:お名前.comのパスワード\n\"
send \".\n\"
expect \"000 COMMAND SUCCESSFUL\" {
send \"MODIP\n\"
send \"DOMNAME:tea-soak.org\n\"
send \"IPV4:${IP}\n\"
send \".\n\"
expect \"000 COMMAND SUCCESSFUL\" {
send \"MODIP\n\"
send \"HOSTNAME:blog\n\"
send \"DOMNAME:tea-soak.org\n\"
send \"IPV4:${IP}\n\"
send \".\n\"
expect \"000 COMMAND SUCCESSFUL\" {
send \"LOGOUT\n\"
send \".\n\"
exit 0
}
}
exit 0
}
"
異常系の処理とかはてきとう。