Q&A100で学ぶ!Perl/CGIプログラミング
森下幸治著、エーアイ出版、2000年10月15日第1版第1刷。実践的な例が多くあり、ためになる1冊。[Tip]この本は次のようにgethostbyaddr関数を使う機会を与えてくれた。もっともPerlプログラミング初版にもこの関数は出ているのだがおそらく当時DOSユーザーには無縁の関数だったろう。
use LWP::Simple;
push(@addrs, (get "http://hpcgi1.nifty.com/kazuf/replist.cgi") =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/g);
foreach $addr (sort @addrs){
$ipad = pack('C4', split(/\./, $addr));
$host = gethostbyaddr($ipad, 2) || $addr;
print $host,"\n";
}
このサイトは実はKENT WEBのアクセスレポートでアクセスログを取得しているのだが、@niftyではホスト名の取得が行われない。実際、上のスクリプトを動かしてみると取得に随分時間が掛かるのがわかる。これはreplist.cgiが生成するHTMLからIPアドレスを取得してホスト名を一つずつ調べるスクリプト。ただ、このようなスクリプトは負荷が大きいのでむやみやたらと使うべきではないかも(^^;)でも参考になった(^^)vなんてPerlは便利なんだろう。[10/9/2000]
→サンプル