2008年6月14日土曜日

アクセスログ出力サンプル

_____________________________
index_access.pl
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
#!/usr/bin/perl --

#=================================================================
# 時刻設定
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900;
$mon = $mon + 1;
$thisday = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[$wday];

$jikoku = sprintf("%04d/%02d/%02d (%03s) %02d:%02d:%02d", $year, $mon, $mday, $thisday, $hour, $min, $sec);

# 環境変数の取得
$ip = $ENV{'REMOTE_ADDR'}; #// リモート端末のIP アドレス
$port = $ENV{'REMOTE_PORT'}; #// リモート端末のポート番号
$url = $ENV{'HTTP_REFERER'}; #// リモート端末の直前の URL
$blws = $ENV{'HTTP_USER_AGENT'}; #// ブラウザ情報
$path = $ENV{'PATH_INFO'}; #// 現 CGI のパス情報

$rtpc = $ENV{'REMOTE_HOST'}; #// リモート端末のホスト名
$svpc = $ENV{'SERVER_NAME'}; #// サーバのホスト名
$webs = $ENV{'SERVER_SOFTWARE'}; #// ウェブサーバのソフト名と ver
$wcgi = $ENV{'GATEWAY_INTERFACE'}; #// ウェブサーバの CGI ver

#===============================================================


open(FILE,">>index_access.log") or die "$!";
flock(FILE,2);
print FILE "$jikoku,$ip,$port,$url,$rtpc,$blws\n";
flock(FILE,8);
close(FILE);

#// 終了
exit(0);


_____________________________
呼び出し側HTML(一部)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄