|目次|更新履歴|概要|検索窓|LAN用|imWHOISの設置|更新と改造|データ生成|
作成日:2004年01月02日、更新日:2004年01月10日 作成:鷹の巣Meta-WhoisのCGIであるCGI倶楽部さんのimWHOISを改造したimWHOIS改のデータを自動生成する方法について説明します。
目次
前節のあとがきに述べました様に前節の方式では、ダウンロード先のサーバーであるwhois.sakaguch.comがダウンしているとデータが更新出来ません。この不安を払拭するためにも、自サイトで、これらのデータを作成する手段が講じておくのが、このWebページの目的です。要は、サービスの提供を自立させ、Meta-Whois Gatewayサービスと同じサービスを提供出来るということです。逆に言えば、検索窓を設置して、このMeta-Whois GatewayサービスのCGIが悲鳴を上げる様な検索数の多いサイトには、このWebページを読んで頂き、ミラーサイトを構築して頂くことを御願いすることも視野に入れています。
imWHOISに使用されているデータのIPv4アドレス-WHOISサーバ対応リスト(rirs.list)と国コード-WHOISサーバ対応リスト(tld.list)の一般的な更新方法は、以下の様になります。
IANA | Generic Top-Level Domainsをダウンロードし、gTLDのwhoisサーバーやURLをtld.listに書き出す。また、IANA | Root-Zone Whois Index by TLD Codeをダウンロードし、ccTLDのwhoisサーバーやURLをtld.listに書き出す。
country code TLD world mapに記載されている様に200個近くある国コード毎にWebページが存在するので、処理時間は、2~3分程要します。
IPアドレスの元締めであるIANA | Abuse Issues and IP AddressesのINTERNET PROTOCOL V4 ADDRESS SPACEをダウンロードし、gTLDのwhoisサーバーやURLをrirs.listに書き出す。JPNICのデータベースのJPNIC管理下でAPNICが逆引きの管理を行っているIPアドレスやJPNICが逆引きの管理を行っているIPアドレス(2003年3月12日現在)のJPNICのデータは、無視します。
まとめますと、以下のURLに記載されている内容
より、Whoisサーバーのデータを自動取得します。(Meta-Whois Gatewayサービスでは、日本標準時で毎週月曜日午前5時から所要時間2~3分で、更新しています。)
更新後の最新版のデータは、「国コード-WHOISサーバ対応リスト(tld_a.list)」と「IPv4アドレス-WHOISサーバ対応リスト(rirs_a.list)」で公開しているものと同じものが出来ます。
imWHOISに使用されているデータ(tld.listとrirs.list)を前項のWebページから取得し、自動生成するPerlスクリプトのimWHOISデータ自動更新プログラム(IO::Socketモジュール使用例)(右クリックして保存)を作成しました。このスクリプトを起動するには、インターネット上のWebページが閲覧出来る環境になければなりません。200頁近いWebページを読みに行くので、ADSL1.5Mの環境下では、最大5分程度の処理時間が必要となります。
このスクリプトを起動する前にスクリプト内の基本設定部分のファイル名を絶対パス表記ファイル名で設定して下さい。以下の例では、元々あったtld.listとrirs.listの同じディレクトリにtld_a.listとrirs_a.listを自動作成する様に設定しています。
MakeImWhoisList.plの設定例
#■□■ 基本設定 ■□■ $file_rirs = 'D:\www\cgi-lib\whois\rirs_a.list'; # imWHOISのrirs.listの絶対パス表記ファイル名 $file_tld = 'D:\www\cgi-lib\whois\tld_a.list'; # imWHOISのtld.listの絶対パス表記ファイル名 #■□■ 基本設定終わり ■□■
下記にこのスクリプトの実行例を示します。画面では、水色がコマンド入力、緑色が得られた結果表示、赤色が注目すべき説明としております。Windows 2000 ProfessionalやWindows XP HOME EditionにActive Perl 5.8.1.807 built for MSWin32-x86-multi-threadを導入して実行しました。尚、このスクリプトでは、ファイルに書き出している内容と同じ内容を画面(標準出力)へも出力しています。
MakeImWhoisList.plの実行例(Windows XP HOME Editionのコマンドプロンプト画面での実行例)
D:\>cd \WWW\cgilib\whois <-----------------------スクリプト(MakeImWhoisList.pl)のあるディレクトリに移動する。 D:\WWW\cgilib\whois>perl MakeImWhoisList.pl <----左記の様に入力して、スクリプト(MakeImWhoisList.pl)を実行する。 MakeImWhoisList.pl Rev.1.000(作成:鷹の巣 http://whois.sakaguch.com/) <-------この行の下は、ファイルに書き出している内容が表示されます。 # =========================================================================== <-------この行以下は、rirs_a.listの出力結果表示 # rirs.list ver1.00 # Copyright (C) 2001 pika-club.com # IPv4アドレス-WHOISサーバ対応リスト # =========================================================================== # ================= # 更新履歴 # ================= # [2001/10/19] v1.00 # 作成 # データ更新日:2004年01月01日 :鷹の巣 <------------------------データ更新日は、このスクリプトを実行した日付となります。 # このデータは、以下のURLに記載されている内容をもとに # MakeImWhoisList.pl Rev.1.000(作成:鷹の巣 http://whois.sakaguch.com)により、自動更新されています。 # INTERNET PROTOCOL V4 ADDRESS SPACE # http://www.iana.org/assignments/ipv4-address-space # このデータを利用するには、im_whois.cgi ver1.05の改造が必要です。 # 改造方法も含めた詳細は、以下のURLをご参照願います。 # http://whois.sakaguch.com/ 0/8,whois.arin.net <-------IPアドレスの第一オクテット単位で出力結果を表示 1/8,whois.arin.net ・・・中略・・・ 254/8,whois.arin.net 255/8,whois.arin.net # =========================================================================== <-------この行以下は、tld_a.listの出力結果表示 # tld.list ver1.00 # Copyright (C) 2001 pika-club.com # 国コード-WHOISサーバ対応リスト # =========================================================================== # ================= # 更新履歴 # ================= # [2001/10/19] v1.00 # 作成 # データ更新日:2004年01月01日 :鷹の巣 <------------------------データ更新日は、このスクリプトを実行した日付となります。 # このデータは、以下のURLに記載されている内容をもとに # MakeImWhoisList.pl Rev.1.000(作成:鷹の巣 http://whois.sakaguch.com)により、自動更新されています。 # IANA | Generic Top-Level Domains # http://www.iana.org/gtld/gtld.htm # IANA | Root-Zone Whois Index by TLD Code # http://www.iana.org/cctld/cctld-whois.htm # このデータを利用するには、im_whois.cgi ver1.05の改造が必要です。 # 改造方法も含めた詳細は、以下のURLをご参照願います。 # http://whois.sakaguch.com/ .aero,whois.aero,Air-transport,http://www.information.aero <-------この行以下は、gTLDドメイン名の出力結果表示 .biz,whois.biz,Businesses,http://www.nic.biz .com,whois.verisign-grs.com,Commercial,http://www.verisign-grs.com .coop,whois.nic.coop,Cooperatives,http://www.nic.coop .info,whois.afilias.net,Unrestricted,http://www.nic.info .museum,whois.museum,Museums,http://musedoma.museum .name,whois.nic.name,Individuals,http://www.name .net,whois.verisign-grs.com,Network,http://www.verisign-grs.com .org,whois.pir.org,Organizations,http://www.pir.org .pro,,Professional, .gov,whois.nic.gov,Government(US),http://www.nic.gov .edu,whois.educause.edu,Educational,http://www.educause.edu/edudomain .mil,whois.nic.mil,Military(US), .int,whois.iana.org,International,http://www.iana.org/int-dom/int.htm .ad,,Andorra,http://www.nic.ad <-------------------------------この行以下は、ccTLDドメイン名の出力結果表示 .af,,Afghanistan,http://www.nic.af/ ・・・中略・・・ .jp,whois.nic.ad.jp,Japan,http://jprs.jp/ <----jpドメイン名の場合。 ・・・中略・・・ .zm,,Zambia,http://www.zamnet.zm/domain.shtml .zw,,Zimbabwe,
このスクリプトの欠点を述べておきますと、国コード-WHOISサーバ対応リストの方は、Webページのhtmlタグに極めて依存したスクリプトになっています。Webページのhtmlタグの書き方が変ってしまうと「一巻の終わり」となってしまいます。そういう意味では、Perlのスクリプトが理解でき、改造できる方でないと設置しない方が良いと考えます。冒頭に述べました様に「サービスの提供を自立させる」というのが前提ですから、是非、このPerlのスクリプトを改造できる様になって頂きたいです。
自動作成スクリプトは、アクセス先のWebページに多少の負担が掛かりますので、通常は、このMeta-Whois Gatewayサービスから公開データをダウンロードして下さい。ダウンロード出来ない場合のバックアップとして、ご使用して頂くと幸いです。
このWebページの通りに設定して、正常に動作しない場合やこのスクリプトに対するご質問や不具合がございましたら、「鷹の巣」の自宅サーバー掲示板にご投稿を御願い致します。このPerlスクリプトは、Perlの練習用として、鷹の巣が個人的に作成しました。 imWHOISデータ自動更新プログラムは、CGI倶楽部さんとは、全く関係がありませんので、お問合せは、必ず上記の掲示板の方に御願い致します。
imWHOISデータ自動更新プログラム(IO::Socketモジュール使用例)の作成にあたり、下記のWebページを参考にさせて頂きました。この場を借りて、心よりお礼申し上げます。
インターネット上のWebページをダウンロード(GET)する部分(IO::Socketモジュール使用例)
|▲頁先頭|