訪問者のプロバイダーを表示
#! /usr/local/bin/perl $addr = $ENV{'REMOTE_ADDR'}; #IPアドレス取得 $host = gethostbyaddr(pack("C4",split(/\./,$addr)),2); #ホスト名取得 if($host) { $provider = getProvider($host); #プロバイダー取得 } if(!$provider) { $provider = "不明"; } print "Content-type: text/html\n\n"; print "<html>\n"; print "<head>\n"; print "<title></title>\n"; print "</head>\n"; print "<body>\n"; print "<center>プロバイダー : $provider</center>\n"; #ホスト名出力 print "</body>\n"; print "</html>\n"; exit; #================================================ プロバイダー取得 sub getProvider { my $host = $_[0]; my ($i); my @provider = ( ['BIGLOBE', 'mesh.ad.jp' ], ['OCN', 'ocn.ne.jp' ], ['Yahoo!BB', 'bbtec.net' ], ['nifty', 'infoweb.ne.jp' ], ['So-net', 'so-net.ne.jp' ], ['ぷらら', 'plala.or.jp' ], ['au one', 'dion.ne.jp' ], ['BB.excite', 'bbexcite.jp' ], ['eonet', 'eonet.ne.jp' ], ['UCOM', 'ucom.ne.jp' ], ['ASAHIネット', 'asahi-net.or.jp' ] ); for($i = 0 ; $i < @provider ; $i++) { if($host =~ /\.$provider[$i][1]$/) { return $provider[$i][0]; } } return 0; }
〔 実行する 〕