本日  昨日
 
03/16(Sun) 01:08

訪問者アクセス解析V2.3の作り方(Web裏技さん)

Web裏技さんのアクセスログ解析スクリプト WebACCESS による訪問者アクセス解析の作り方を紹介します。

アクセスログ解析スクリプト WebACCESS は、サーバから提供される環境変数を参照することで、訪問者の様々な情報を取得し下記の項目を解析します。

  • どこのリンクから訪れたか(接続されたか)。
  • その訪問者の利用ホスト名は。
  • 訪問者の使っているブラウザの種類とバージョンはなにか。
  • 時間帯ごとの訪問数。


作成手順を説明します。

  1. プログラムをダウンロードします.
  2. ダウンロードしたプログラムを編集します.
  3. プログラムを呼び出すHTMLファイルを編集します.
  4. プログラムとHTMファイルをサーバに転送し、実行権を設定をします.

プログラムをダウンロードします。

  1. Web裏技さんのチャレンジCGIのコーナ「アクセスログ解析スクリプト WebACCESS 」から下記の3つのファイルをダウンロードして下さい。ダウンロードのしかたはこちらです。

    • webaxs.cgi (ログ解析・表示スクリプト)
    • webaxs.pl (ログ取得スクリプト、一般用をダウンロードします)
    • bar.gif

  2. つぎに、下の空のファイルをindex.htmと同じディレクトリに作成します。空のファイルの作り方はこちらです。

    • log.csv (ログ記録ファイル。CSV形式なのでExcelなどの表計算ソフトに読み込んで集計することも可能です。)


ダウンロードしたプログラムを編集します。

  1. 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を置いてあるフォルダ名です。(パスの指定のしかたはこちらです。)

  2. webaxs.pl
    • 1行目 #!/usr/local/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。Infowebの場合は、#!/usr/bin/perlになります。

    • 14行目 集計に含めないURLを指定します。このままでも動きますので解らない方はなにもしなくても結構です。

      (例)あなたのホームページのURLを指定すると、来訪者が「再読み込みボタン」などで再読み込みしたようなケースは集計しなくなります。この場合は、
      $mine = "http://www.xxx.or.jp/~user/"; をあなたのホームページのURLに変更します。私の場合は、 $mine = "http://kikuchisan.net/"; です。


プログラムを呼び出すHTMLファイルを編集します。

  1. ログデータの取得(webaxs.plの実行)
    • webaxs.pl を呼び出すには SSIの記述で、index.htm の任意のところに<!--#exec cmd="./webaxs.pl"-->と記述します。

  2. ログデータの解析と表示(webaxs.cgiの実行)
    • index.htm の任意のところに<A HREF="webaxs.cgi">アクセスログ解析</A>と記述します。

プログラムとHTMファイルをサーバに転送し、実行権を設定をします。

  1. webaxs.cgi、webaxs.pl、log.csv、index.htmの4つのファイルをルートディレクトリにアスキーモードで転送(put)します。bar.gifを images フォルダにバイナリーモードで転送します。

  2. ファイルの構成と実行権

    転送が終わったら、それぞれのファイルに下の実行権を設定します。

        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カ所を追加・変更します。

  1. 11行目の$log = "./log.csv";の次行に下の1行を挿入します。
    $ipmas = "./ipmas.dat"; #DNS逆引き用look-up-table

  2. 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(<FP>){ ($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に変更して下さい。)


 
 
©1997- Kikuchisan's workshop All rights reserved //

スポンサーリンク

関連コンテンツ