#!/usr/local/bin/perl # # 集計CGI WebACCESS v2.2 is Free. (c)rescue.ne.jp #(SSIが使えないサーバの為の画像でデータを取得するタイプ専用) # #-------------------------------------------------------------------# # ログ記録ファイルを設定(このCGIから見た位置関係) $log = "./log.csv"; #-------------------------------------------------------------------# # HTMLヘッダを出力 # # もしこの集計表示をSSIとして張りつけたい場合は、このヘッダを削除して、 # と記述すれば、その場所に表示される。 # print "Content-type: text/html\n\n"; # ログを配列@linesに読み込む open(DB,"$log"); @lines = ; $accesses = @lines; close(DB); # 各データを項目別に集計する foreach $line (@lines) { ($hour,$rh,$hua) = split(/\,/,$line); if ($hour ne '') { $hours{($hour)[0]}++; $h++; } if ($rh ne '') { $rhs{($rh)[0]}++; $j++; } if ($hua ne '') { $huas{($hua)[0]}++; $k++; } } # ここからHTMLの出力 print "WebACCESS\n"; print "\n"; print "

WebACCESS

\n"; print "総サンプル数:最新$accessesアクセス

\n"; print "
\n"; print "

利用ホストはどこか?

\n"; print "サンプル数:$j

\n"; print "\n"; print "\n"; foreach (sort { $rhs{$b} <=> $rhs{$a} } keys %rhs) { print "\n"; $percent_rhs = (int(10000 * ($rhs{$_} / $j)) / 100); print "\n"; print "\n"; } print "
リモートホスト件数割合
$_$rhs{$_}$percent_rhs\%

\n"; print "

\n"; print "
\n"; print "

利用ブラウザは何か?

\n"; print "サンプル数:$k

\n"; print "\n"; print "\n"; foreach (sort { $huas{$b} <=> $huas{$a} } keys %huas) { print "\n"; $percent_huas = (int(10000 * ($huas{$_} / $k)) / 100); print "\n"; print "\n"; } print "
ブラウザ名件数割合
$_$huas{$_}$percent_huas\%

\n"; print ''; print 'MSIEのMozilla-compatibleの場合は、MSIEとして集計しています.

' . "\n"; print ''; print "

\n"; print "
\n"; print "

時間単位のアクセス調査

\n"; print "\n"; print "\n"; foreach (sort keys %hours) { print "\n"; $percent_hours = (int(10000 * ($hours{$_} / $h)) / 100); $kome = '■' x $percent_hours; print "\n"; print "\n"; } print "
時間帯件数目安
$_$hours{$_}$kome

\n"; print "

\n"; print "

WebACCESS is Free.

\n"; print "\n";