2014年8月7日木曜日

dyn の IP チェックサイトが危ない?んですけど

以前からダイナミック DNS サービスの dyn において、IP チェックサービス用のウェブサイトからの返答がなく、タイムアウト・エラーになったことを知らせるシステム・メールが頻繁に届くようになりました。
WARNING:  TIMEOUT: checkip.dyndns.com after 120 seconds
dyn のサービスはすべて有料に切り替わった時点で我が家は no-ip のサービスへと乗り換えています。しかし IP アドレス更新用のソフトウェアの ddclient はそのまま使い続けています。

この ddclient で使用出来る公開された IP チェックのホームページはほぼ皆無に近く、以前のように dyn の IP チェックのホームページ(checkip.dyndns.com)を使い続けるしかないようです。本来は no-ip に乗り換えた時点で no-ip の方で用意している IP チェックのホームページを使用すべきもののはずなのですが、なぜか no-ip の IP チェックのページが見当たりません。

そろそろ IP チェックが出来なくなることを予想して、何らかの対策をしておかなければならないようです。

一つとしては、以前から借りていた外部のホームページ用領域に IP アドレスをチェックするスクリプトを一時的に組み込んで使用してみることとしました。ddclient の設定も新しい IP チェック用のホームページへアクセスするように変更しておきました。

この外部のホームページ領域へ IP チェック・スクリプトを組み込むのが一番簡単なような気がしますが、最近ではブログではなく、旧来からの手作りホームページをアップロードできるレンタル・スペースも減少している模様です。

そこでルータ(フレッツ光ネクスト隼の HGW : PR-400NE)の設定ページの中に記述されているグローバル IP アドレスを読み出す方法はないものかと、少しシェルスクリプトを考えてみました。

まだ未完成ですが次の二段階でグローバル IP アドレスが PR-400NE から取得できます。試した環境は Debian Wheezy の bash シェルのです。

1. PR-400NEの「現在の状況」のページの取得します。
$ wget --http-user user --http-passwd PASSWORD http://192.168.1.1/index.cgi/info2_main
info2_main の名前で「現在の状況」のページが保存されます。ユーザは user 固定です。パスワードは PASSWORD へ手持ちの機械のパスワードを設定してください。

2. 保存した「現在の状況」のページ(info2_main)の中から sed コマンドでグローバル IP アドレスを抽出します。
$ egrep -o '[0-9]+(\.[0-9]+){3}' info2_main | sed -n '1p'


このシェルスクリプトを crontab で定期的に実行させて、出力した IP アドレスの変化を ddclient で検出するようにすれば、外部の IP チェックに頼らずにダイナミック DNS の IP アドレスを更新することができるようになるはずです。

またシェルスクリプトに進展がありましたら、報告します。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。