5.ブラウザチェッカー

先日アクセスログでUser-Agentに「逝ってよし!」などとふざけたことを
書いていた(しかも生IPだし)バカな輩がおりなんかむかついたので作ってみました。
今回はライブラリ?です。

brchk.pl
package br;
#
#ブラウザチェッカー
#

$dfile = "./brchk.txt";

sub brchk {
$bref=1;

$cagent = $ENV{'HTTP_USER_AGENT'};
$craddr = $ENV{'REMOTE_ADDR'};
$crhost = $ENV{'REMOTE_HOST'};
$cpfor  = $ENV{'HTTP_X_FORWARDED_FOR'};
$ccookies = $ENV{'HTTP_COOKIE'};
$cref = $ENV{'HTTP_REFERER'};

open(IN,"$dfile");
@brok = <IN>;
close(IN);

foreach (@brok) {
$_ =~ s/\n//g;
if ($cagent =~/$_/i){$bref=0;}
}
if ($bref == 1){&bree; return 1;}
return 0;
}

sub bree{
print "Content-type: text/html\n\n";
print <<"EOM";
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL was not found on this server.<P>
<HR>
</BODY></HTML>
EOM
}
1;

これはいろいろHPで使っているCGIのルーチンを使いまわした
ものなので変数が見にくいですけど我慢してください。
見たらわかりますけど下記のbrchk.txtのデータとUser-Agentの中身を比較しています。
そして以下のリストになかったブラウザでは見た目は404と返します。

brchk.txt
perl
MSIE
Mozilla
Internet Ninja

でライブラリの使い方ですけどCGIの2,3行目あたりに
require './br.pl';
if ( &br'brchk(0) ) { exit;}
の2行を追加するだけです。

これでむかつくやつから情報を遠ざけることができますよん(笑)
・・・ううっ、今回も何の役にも立たないものでしたね(笑)

もどる