03/16(Sun) 01:08
■ 訪問者アクセス解析V2.3の作り方(Web裏技さん)
Web裏技さんのアクセスログ解析スクリプト WebACCESS による訪問者アクセス解析の作り方を紹介します。
アクセスログ解析スクリプト WebACCESS は、サーバから提供される環境変数を参照することで、訪問者の様々な情報を取得し下記の項目を解析します。
- どこのリンクから訪れたか(接続されたか)。
- その訪問者の利用ホスト名は。
- 訪問者の使っているブラウザの種類とバージョンはなにか。
- 時間帯ごとの訪問数。
作成手順を説明します。
- プログラムをダウンロードします.
- ダウンロードしたプログラムを編集します.
- プログラムを呼び出すHTMLファイルを編集します.
- プログラムとHTMファイルをサーバに転送し、実行権を設定をします.
■ プログラムをダウンロードします。
- Web裏技さんのチャレンジCGIのコーナ「アクセスログ解析スクリプト WebACCESS 」から下記の3つのファイルをダウンロードして下さい。ダウンロードのしかたはこちらです。
- webaxs.cgi (ログ解析・表示スクリプト)
- webaxs.pl (ログ取得スクリプト、一般用をダウンロードします)
- bar.gif
- つぎに、下の空のファイルをindex.htmと同じディレクトリに作成します。空のファイルの作り方はこちらです。
- log.csv (ログ記録ファイル。CSV形式なのでExcelなどの表計算ソフトに読み込んで集計することも可能です。)
■ ダウンロードしたプログラムを編集します。
- webaxs.cgi
- 1行目 #!/usr/local/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。多くのプロバイダはこのままで動くと思いますが、うまくいかない時は、プロバイダに「perlのあるパス」を問い合わせてください。Infowebの場合は、#!/usr/bin/perlになります。
- 12行目 $bar = "http://www.xxx.ne.jp/~user/images/bar.gif"; を $bar = "./images/bar.gif"; に変更します。imagesはbar.gifを置いてあるフォルダ名です。(パスの指定のしかたはこちらです。)
- webaxs.pl
■ プログラムを呼び出すHTMLファイルを編集します。
- ログデータの取得(webaxs.plの実行)
- webaxs.pl を呼び出すには SSIの記述で、index.htm の任意のところに<!--#exec cmd="./webaxs.pl"-->と記述します。
- ログデータの解析と表示(webaxs.cgiの実行)
- index.htm の任意のところに<A HREF="webaxs.cgi">アクセスログ解析</A>と記述します。
■ プログラムとHTMファイルをサーバに転送し、実行権を設定をします。
- webaxs.cgi、webaxs.pl、log.csv、index.htmの4つのファイルをルートディレクトリにアスキーモードで転送(put)します。bar.gifを images フォルダにバイナリーモードで転送します。
- ファイルの構成と実行権
転送が終わったら、それぞれのファイルに下の実行権を設定します。
index.htm
webaxs.cgi (755)
webaxs.pl (755)
log.csv (666)
images/---+-bar.gif
さぁ,これで完成です。index.htmを再読み込みし、アクセスログ解析をクリックしてみましょう。アクセスログ解析が表示されれば完成です。
■ もっとあなた好みに改造してみませんか!
正常動作が確認できたら、もっとあなた好みにwebaxs.cgiを改造しましょう。背景やテーブル色の変更やグラフ長の変更などが簡単にできます。ソースを読める方はいろいろトライしてみて下さい。
■背景色、文字色の変更。
35行目 print '<BODY bgcolor="#000000" text="#ffffff" link="#5156bf" vlink="#6666aa">' . "\n";
の bgcolor、text、link、vlink を変更します。(例)bgcolor="white"、background="gif/back.gif"など。
私は、background="gif/back.gif" text="navy" link="#CC285F" vlink="blue" alink="lime" にしています。
■テーブル色の変更。
テーブル背景----46、65、85、103行目 print "<table border>\n";
に<table border bgcolor=bisque>のように、色指定を記述します。
テーブルヘッダー背景----47、66、86、104行目 print "<tr><th nowrap>件数</th><th nowrap>割合</th><th nowrap>リンク元</th></tr>\n";
などの<tr>に
<tr bgcolor=#66CC99>のように、色指定を記述します。
■グラフの長さ調整。
72、92、109行目 $img = int($percent_rhs * 10);など
の 10 を変更します。値を大きくすると長く、小さくすると短くなります。私の場合は、フレームを使っているのでブラウザ調査のグラフを短めの 5 に設定してます。
■
ホスト名を名前(ドメイン名)で表示するための改造法
Infowebは昨年8月に、サーバ負荷の軽減のため「DNS逆引き」(IPアドレスからドメイン名を得る)を停止しました。リモートホストがIPアドレスで表示され味気なくなりましたね。ホスト名を名前(ドメイン名)で表示するための改造を行いましょう。
■改造個所(webaxs.pl)
次の2カ所を追加・変更します。
- 11行目の$log = "./log.csv";の次行に下の1行を挿入します。
$ipmas = "./ipmas.dat"; #DNS逆引き用look-up-table
|
- 59〜63行目の5行(改行のみの行があるのでスクリプトは4行)
if ($rh eq $addr) { $rh = gethostbyaddr(pack('C4',split(/\./,$rh)),2) || $addr; }
if ($rh =~ /(.*)\.(\d+)$/) { ; }
elsif ($rh =~ /(.*)\.(.*)\.(.*)\.(.*)$/) { $rh = "\*\.$2\.$3\.$4"; }
elsif ($rh =~ /(.*)\.(.*)\.(.*)$/) { $rh = "\*\.$2\.$3"; }
を下のスクリプトと置き換えます。マウスでスクリプトをドラッグしてメモ帳などのエディタで「コピー」→「貼り付け」ると楽です。
#--DNS逆引き------
open(FP,"<$ipmas") || die "Can't open $ipmas\n";
$flg=0;
while(){
($id1,$name1)=split(/\s+/);
if($rh =~ /$id1/){ $flg=1; $rh = $name1; last; }
}
close(FP);
if($flg==0){
if ($rh eq $addr) { $rh = gethostbyaddr(pack('C4',split(/\./,$rh)),2) || $addr; }
if ($rh =~ /(.*)\.(\d+)$/) { ; }
elsif ($rh =~ /(.*)\.(.*)\.(.*)\.(.*)$/) { $rh = "\*\.$2\.$3\.$4"; }
elsif ($rh =~ /(.*)\.(.*)\.(.*)$/) { $rh = "\*\.$2\.$3"; }
}
#--DNS逆引き(ここまで)------
|
■ Look-up-table ipmas.datの入手
DNS逆引き用 Look-up-table ipmas.dat をダウンロードします。
ダウンロードした ipmas.dat は webaxs.pl と同じフォルダに置きます。(注)ipmas.datのパス指定はSSI記述したHTML文から見たパスになります。
ipmas.dat (約33KB、2005/12/27版) :ipmas.datをクリック(左)するとダウンロードを始めます。(左クリックすると表示するか保存するか聞いてきますので「ファイルに保存」を選択するとdowncnt.cgi という名で保存されます。ファイル名をipmas.datに変更して下さい。)
|