global IP を取得する

「固定のglobal IPを取得する話」ではなく、
現在ネットにつながっている環境でのglobal IPを知りたいという話。
以前は外部のサービスを利用していましたが、いつのまにか使用できなくなっていたのでルータから取ります。
やっていることはルータが表示するhtmlページからglobal IPを取り出します。

ルータはPWR-N1000です。
なお、XXXXにはユーザ名、YYYYYYYYにはパスワードを入れてください。

#!/bin/sh
# 一時ファイル名
TEMP=.temp
wget --http-user XXXX --http-password YYYYYYYY -O ${TEMP} http://zz.zz.zz.z/index.cgi/info_main 2>/dev/null
# 14行目を取り出す
IP1=$(grep small_item_td2 ${TEMP} | head -n 14 | tail -n 1)
#echo ${IP1}
# httpタグの中身を取り出す
IP2=$(echo ${IP1} | grep -oP '(?<=>).+(?=<)')
#echo ${IP2}
# "/"より前の部分を取り出す
IP3=$(echo ${IP2} | grep -oP '.+(?=/)')
# 結果を標準出力する
echo ${IP3}
# 一時ファイルを削除する
rm ${TEMP}

かなり大雑把ですが(笑