#!/usr/local/bin/perl # アクセスログ記録処理 # リンク元、ブラウザ、ホスト、時刻を記録する # id=aclogimg.cgi # update 2000.4.5 ################################################## $file = "/dialup/chichibu/cgi-bin/access.log"; # 記録する最大件数(これを超えたら古いデータから消していく) $max = 100; # 記録ファイルを読み出しオープンして、配列<@lines>に格納する if (!open(DB,"$file")) { exit; } flock(DB,2); @lines = ; flock(DB,8); close(DB); # 最大保持記録数の処理(一番古いデータを消す) %new=(); $i = 0; foreach $line (@lines) { $i++; if ($i == $max) { last; } push(@new,$line); } # 本日セット ($byo,$fun,$ji,$dd,$mm,$yy,$t7) = localtime; $mm++; # 西暦4桁処理 $yy = $yy + 1900; # 処理時刻 $time = "$yy\,$mm\,$dd\,$ji\,$fun\,$byo"; # 1件目に登録する(最新情報を残す) # http://は特にいらない $ENV{'HTTP_REFERER'}=~ s/http:\/\///ig; # ホスト名は頭の変わる部分をカットする $a=$ENV{'REMOTE_HOST'}; $ENV{'REMOTE_HOST'}=substr($a,index($a,".")+1); # 最後に区切り記号と同じものがないように \, を変える $ENV{'HTTP_USER_AGENT'} =~ s/\,/./ig; $ENV{'HTTP_REFERER'} =~ s/\,/./ig; $ENV{'REMOTE_HOST'} =~ s/\,/./ig; $value = "$ENV{'HTTP_USER_AGENT'}\,$ENV{'HTTP_REFERER'}\,$ENV{'REMOTE_HOST'}\,$time\n"; unshift(@new,$value); # 記録ファイルを上書きオープンして、配列<@new>を書き出す if (!open(DB,">$file")) { exit; } flock(DB,2); print DB @new; flock(DB,8); close(DB); ###################################################################### ここまで # 背景画像と同じ小さなファイル $img = "/dialup/chichibu/gazo/dummy.gif"; # 画像ファイルを開く open (GIF, $img); flock(GIF,2); # 画像ファイルの情報(ファイルサイズ)を取り出す @gifdata = stat($img); $byte = $gifdata[7]; # ヘッダを出力 print "Content-type: image/gif\n"; print "Content-length: $byte\n"; # ヘッダの終わりを出力 print "\n"; # 画像ファイルの中味を表示 print ; # 画像ファイルを閉じる flock(GIF,8); close(GIF); # 処理終了 exit; ################ end of script #################