| 3.自動更新スクリプトの簡単な説明 (1)ADSLモデムから現在のIPアドレスを取得する場合 最初に、従来のモデムから現在のIPアドレスを取り出す方法について説明します。 以前、フレッツISDNを利用していたときには「 MN128 SOHO SL11 」というルータを使っていたのですが、これは telnet でログインできていました。 (ただ、この時も自動接続スクリプトを作成するのに必要な perl の「 Net::Telnet 」で嵌りましたが。。。^_^; ) しかし、今回使用しているADSLルータ「 MegaBit Gear TE4111C 」では、telnet でログインさせてくれません。 何故か、wwwベースでないとアクセスできないようです。 そこで、「 LWP::UserAgent 」というモジュールを用いて、目的のページにアクセスし、そのHTMLソースからIPアドレスを取得することにします。 |
|
| (2)myip.hn.org/ip.cgi から現在のIPアドレスを取得する場合 次に、今回発見した myip.hn.org/ip.cgi にアクセスし、そこから現在のIPアドレスを取り出す方法について説明します。 まず、hn.org にあるTOOLS ( http://hn.org/www/tools/ )のページにアクセスしてみてください。 そして、そこにある 「 ・ myip.hn.org/ip.cgi - Your IP Address 」をクリックしてみてください。 すると、次のように現在自分に割り当てられているIPアドレスが表示されます。 (この図は2001年12月29日時点での、当サイトのIPアドレスを表示しています。) |
![]() |
| 今回の方法は、この1行目に表示される「<HEAD> as <!--IPADDR=」の後に続くIPアドレスを取り込むことにしました。 基本的には、「(1)ADSLモデムから現在のIPアドレスを取得する場合」と同じように、「 LWP::UserAgent 」というモジュールを用いて、目的のページにアクセスし、そのHTMLソースからIPアドレスを取得するという方法をとります。 下記の赤字で表記しているところが、その部分です。 |
|
| さて、この後のステップはどちらも同じです。 まず、現在の日時とIPアドレスをセットした「 adsl.new 」というファイルを作成します。 「 adsl.new 」の内容は、次のとおりです。 |
|
| この内容と前回チェックした時のIPアドレスとを比較し、変わっていればこの「
adsl.new 」というファイルを「 adsl.js 」として保存し、「 hammernode.pl
」を実行するという仕組みです。 ですから、最初に「 adsl.js 」というファイルを作成しておいてください。 (ファイルの内容は「 adsl.new 」と同じ形式です。) 下記は「 myip-hammernode.pl 」のルーチンです。(「 adsl-hammernode.pl 」のルーチンに少し修正を加えています。) |
|
| 以下は、「 hammernode.pl 」のルーチンです。 ただ、赤色で示した3箇所の部分は、修正しなければなりません。 |
|
| こうして作成したスクリプトを /usr/local/bin のディレクトリに置いて、crond
で5分ごとに実行するようにしています。 具体的には、次の1行を /etc/crontab に追加します。(例は、myip-hammernode.pl ) */5 * * * * root { /usr/local/bin/myip-hammernode.pl ;} >> /var/log/hammernode.log 2>&1 |
| これをご覧になられた方で、こんなところがおかしいとか、こうすればもっとよくなるのに、というご意見があれば、当サイトのBBSに書き込んでください。 お待ちしております。(^o^)丿 なお、こう修正して欲しい、というご要望には(webmasterの実力がついていきませんので)お応えできません。(~_~;) ご了承ください。m(__)m |