Edited at

Google Apps Script(Spreadsheet)を応用して外出先から自宅ルータのグローバルIPアドレスを調べられるようにしようとした

More than 5 years have passed since last update.

しようとしたけどスクリプト組んだだけで終わり、全く運用できてないので、後日詳細を書く予定。

以下ざっくばらんなメモ。

外出先からルータのIPアドレスを知る方法を確立しておこうと思い色々考えた結果、

なぜかGoogle Apps Script@Spreadsheetと、NASのcronで解決することにした。

ちょっと遠回りすぎる気がするが……。

できればSpreadsheetに記録しないようにしたい。

Spreadsheetに埋め込んだGoogle Apps ScriptにdoGet()関数を用意し中身を記述する。

ScriptへのGETアクセスを契機に、doGet()関数が呼ばれる。

GETアクセスするためには、Scriptを外部公開すれば良い。

doGet()引数で接続元ホストのIPを取得する方法が無いようだ。

なので接続元がIPを取得してクエリ文字列で渡す必要がある。

グローバルIPをクエリ文字列に含んだURLをwgetなりcurlなりすれば

NASなりMacなりでシェルスクリプト化して、cronで定期実行すれば良い。

自宅内LANに接続された機器から、ルータのグローバルIPを知るには、

接続元IPを表示してくれるWebサイトを適当にwgetなりcurlなりして、

html内から抜き出してくれば良い。

ぶっちゃけDDNSがまともに使えれば良い。

ちょっと事情があってうまいことDDNSが利用できなかったので、

なんとかしてLAN内の機器からグローバルIPを通知する方法を確立したかった。

できればSpreadsheetに記録しておく方法ではなく、

こちらから特殊なコマンドを記述したメールをGmailに送った時にだけ、

グローバルIPを書いたメールを返してくれるような仕組みにしたかったが、

GmailをGoogle Apps Scriptから利用しようとすると、深みにはまりそうだったため、

Web上に情報量の多いSpreadsheetを使うことで取り急ぎ解決。