今までDDNSサービスのMyDNSへのIPアドレス更新にはHTTPへBASIC認証をしていました。
IPV6を無効化する方法もどうぞ↓
こんな感じ
cronで30分毎にリクエストするよう設定
crontab -e
中身
*/30 * * * * wget -q -O /dev/null http://[ ID ]:[ パスワード ]@ipv4.mydns.jp/login.html
簡単で良いのですがHTTPのBASIC認証はIDもパスも平文で送られるのでセキュリティー的にはもっとセキュアなHTTPS(SSL)通信させた方が良いようです。(今まで約3年も放置していて今更感が否めませんが・・・)
HTTPS化したらBASIC認証はヘッダリクエストなのでパスは割れにくくなります。
ということで同じようにwgetでHTTPSリクエストをしてみましたら。
GnuTLS: A TLS fatal alert has been received.
Unable to establish SSL connection.
と怒られました。
うん、まあ予想はしていたけどね。
ということでPythonでurllibでも使うかー?と思っていたのですが、もっとHTTPSリクエストを簡単に出来る方法を発見しました。
<参考>
DDNSサービスのMyDNSを使って無料で自宅サーバとVPSのDNS登録してみた - aoishiの備忘録
curlを使うのが簡単そうです。
-uオプションでベーシック認証が出来るそうで、結果は-oで/dev/nullに破棄します。
curl https://ipv4.mydns.jp/login.html -u [ ID ]:[ パスワード ] -o /dev/null -s
(個人利用の自宅サーバーなので繋がらなくなったらその時に調べたら良しとします。)
30分ごとにリクエストするようcronで設定しました。
*/30 * * * * curl https://ipv4.mydns.jp/login.html -u [ ID ]:[ パスワード ] -o /dev/null -s
curlは古いRaspbianにも入っていたしたぶんインストールしなくても現行Linuxじゃデフォルトで入ってるっぽいですね。便利!