#ルータのWAN側アドレスを知りたい
DDNSを使うには、自分のWAN側アドレスを知る必要がある。
よくあるのは
#!/bin/bash
ip=$(curl -s https://ipv4.icanhazip.com/)
という感じだが、5分おきとかに確認したいときは毎回外部のサーバにアクセスするのはちょっと気が引けるので、ルータにアクセスして取得してみる。
curlでルータのページアクセスしてgrepで抽出する。
アドレス、ユーザ名、パスワードは適宜変えてほしい。
他のルータでも基本的な考え方は同じだと思う。
ip=$(curl -Ss -u user:password \
http://【ルータのアドレス】/cgi-bin/Now_Information.cgi |\
grep -A 10 "メインセッション" | grep -A 1 "WAN側" | \
grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
うまくいったけど、LANにルータのパスワードが平文で流れるので、気をつけないといけないかも。
最近のルータはWAN側アドレスが変わるとメールで知らせたりしてくれるらしいので、早く取り替えてほしいものである。