自動更新を行うために必要な環境の整備

自動更新スクリプトを利用するためには必ず必要な作業です

Perl Moduleとは

 Perl Moduleとは、一言でいえばPerlの機能を拡張するために作成された関数群です。"拡張"というと少々異なるかもしれませんが、Perlから関数のような形でOSのさまざまな機能(今回の場合はネットワーク機能)を簡単に呼び出して利用するためにパッケージ化されたプログラムと言い換えてもいいでしょう。Windowsでいえば、ユーザーが作成したDLLのようなものであると考えて頂ければいいのではないでしょうか。拡張子(というのはWindows的考え方かもしれませんが)は"pm"になります。

 実に様々なModuleが世界中の有志の手によって作成されており、その多くは無償で公開されています。それらのModuleを集めて検索できるようにしてあるサイトも立ち上げられており、私が利用しているModuleもその検索エンジンを利用して探し出しました。CPAN(Comprehensive Perl Archive Network)がそれです。もっともCPANはPerl関連の総合アーカイブになりますが、Moduleについても一番でしょう。世界中にミラーサイトがあるようですが、いくつかのサイトを以下に示しておきます。

  本家Webページ? : ftp://ftp.funet.fi/pub/languages/perl/CPAN/index.html
  本家FTPサイト : ftp://ftp.funet.fi/pub/languages/perl/CPAN/
  検索ページ : http://theoryx5.uwinnipeg.ca/CPAN/cpan-search.html

 お勧めは検索ページです。今回利用しているModuleに限らず、役に立つ物が多く収められています。

 

今回利用するModule

 私が作成した自動更新スクリプトの処理内容を簡単に書くと、

  1. ネットワークが切断されている場合に備えて、Pingを打ってInternet接続を確立。
  2. TelnetでMN128 SOHO Slot-inに入る。
  3. ルーターのコマンドで現在のIPアドレスを取得し、前回取得したIPアドレスと比較。
  4. 前回のIPアドレスから変更がない場合はそのまま終了。
  5. 更新されている場合は新しいIPアドレスをファイルに保存する。
  6. dyn.toのIPアドレス更新ページのFormに、現在のIPアドレスをPOSTする。

 という感じになります。この中のTelnetの部分とFormにPOSTする部分に、Moduleを利用しています。実際にインストールしたModuleは以下の8つです。多いように見えるかもしれませんが、あるModuleを利用するための前提条件が別のModuleになっていたりする場合もあるので、私はこの8つが最低限必要なものだと判断していれました。もっとも、不必要なModuleをインストールしても何ら不都合はありません。また、これらすべてがCPANの検索ページから見つけることができます。

  ・Digest-MD5-2.12
  ・HTML-Tagset-3.03
  ・Net-Telnet-3.02
  ・libnet-1.0703
  ・HTML-Parser-3.13
  ・MIME-Base64-2.11
  ・URI-1.09
  ・libwww-perl-5.48

 

Moduleのインストール

 Moduleによっては、あらかじめコンパイル済みの.pmファイルが用意されていて、それをPerlのライブラリを置くディレクトリ(私の場合は/usr/lib/perl5/5.00503)にコピーすれば利用することができるようになっているものもありますが、.pmファイルが用意されていないものもありますので、ここでは普通にコンパイルしてインストールする方法を示します。

 コンパイルおよびインストールの方法は大抵のModuleでは共通です。今回利用するものも手順としてはすべて共通になります。ここではDigest-MD5-2.12を例にとります。

 まずCPANの検索ページで必要なModuleを探し出します。そして必要なアーカイブをダウンロードします。ダウンロード後、まず解凍と展開を行います。ダウンロードしたディレクトリに移動し、

 tar -zxvf Digest-MD5-2.12.tar.gz

 と入力すると、アーカイブが展開されて"Digest-MD5-2.12"というディレクトリができます。そのディレクトリに移動して、簡単にREADMEに目を通してから、インストールを行います。インストールは非常に簡単で、

 perl Makefile.PL
 make
 make test
 make install

 を続けて行うだけです。Makefile.PLでMakefileを作成し、実際にmake、そしてテストしてからインストールということになります。これを8回繰り返せばOKです。あとはこちらで紹介しているスクリプトを実行すれば、自動的にdyn.toのDNSレコードが現在のIPアドレスに書き換えられるようになります。