アクセスカウンター i-Counter

ここで紹介するのはKENT-WEB提供のフリーなアクセスカウンタ e-Counter を改造した i-Counter です。

はじめに

以前、CGIのアクセスカウンタを作っていたのですが、これはPerl用のGDというライブラリを使っていました。これが、職場のWWWサーバーの移行の際にGDをインストールしてもらうのを忘れておりまして、使用不能になってしまって、悲しい想いをしておりました。

いちいち管理室にお手間をとらせては申し訳無いので、GD不要のフリーのカウンターe-Counter(KENT-WEB提供)を使用することとしました。

ところが、使ってみると、これはひとつのページのアクセス数をカウントするのみのもので、複数のページをカウントするには同じモノをいくつもインストールしなければならないわけです。

そこで改造しました。改造点はURLの呼び出しによって以下の指定ができるようにしたことです。

  1. ユーザーの指定ができる
  2. フォントの指定ができる
  3. IPアドレスのチェックを行うかどうかの指定ができる
  4. ステルスモード show=0 で、表示を行わない
  5. 確認モード   show=1 で、カウント数を表示するだけのHTMLを開く。カウントは増えない。

つまり、見えないアクセスカウンタが可能なわけです。こういうのって...けっこうあるんだろうか?

著作権表示

オリジナルの著作権表示は以下のようになっています。

#┌─────────────────────────────────
#│ e-Counter v1.3 (2001/08/25)
#│ Copyright(C) Kent Web 2001
#│ webmaster@kent-web.com
#│ http://www.kent-web.com/
#└─────────────────────────────────

改造担当は私自身です。改造部位はファイル中に明記してあります。

カウンターのスクリプトの入手とインストール

スクリプト icount.cgi と、データファイル例 icount.dat を同梱した icount.zipを入手し、解凍してください。設置法はオリジナルのecount.cgiと同じです。

呼び出し方などはスクリプト中に変更点として書きこんでいますし、このページにも書いてあります。フォントファイルなどは各自用意してください。

設置法

icount.cgi と ***.dat は以下のようなディレクトリ構成・パーミッションで設置してください。

  public_html / index.html (トップページ)
       |
       +-- cgi-bin / icount.cgi [755]
              |      icount.dat [666]
              +----/usr1/       [777]   <-ディレクトリで管理する場合
              |     foo.dat [666] 
              |
              +-- gif / 0.gif 1.gif .... 9.gif  <-デフォルトフォント
              |     |
              |     + /red/0.gif 1.gif .... 9.gif <-ユーザーフォント
              |     + /blue/0.gif 1.gif .... 9.gif <-ユーザーフォント
              |
              +-- lock [777] /
              +--------------/usr1/ [777]  <-アクセスログをディレクトリ管理する場合は
                                             同名のディレクトリをlock/以下に作る。

ファイルの転送の仕方、ディレクトリやファイルのサーバー上での管理法・パーミッションの変更法などはサーバー管理者にお尋ね下さい。

実際のカウンタの呼び出し方は二つあります。ひとつはHTMLファイル内に<img src="">タグとして埋め込む法。これをインラインモードとでも呼びます。もうひとつは、ブラウザのアドレスバーなどにURLとして http://www...../cgi-bin/icount.cgi?check=1&... などの形で呼び出す法。これをURLモードと呼びます。それぞれについて説明します。

インラインモード

インラインモードでは、ユーザー名(ディレクトリ可、省略不可)、フォント名(ディレクトリ可、省略可)、桁数(省略不可)、IPアドレスチェックの有無(省略時はチェックする)、ステルスモード(省略時は表示する)の指定ができます。

以下、CGIの呼び出しURLの http://www.xxx.zzz/... はご自分のサーバーのURLによみかえて下さい。

普通にアクセスカウンタを画面に表示したいときは、以下のようにHTMLファイル中に書きこんでください。周りを囲むテーブルタグもいっしょに書きます。ユーザー名を foo、フォント名を bar とし、四ケタで表示します。イメージタグの間を[改行]で区切ると、空白がひとつ挟まって、切れ切れの数字になってしまいますので、必ず一行で書きます

<table border=1><tr><td><img src="http://www.xxx.zzz/cgi-bin/icount.cgi?usr=foo&l=4&d=bar">
<img src="http://www.xxx.zzz/cgi-bin/icount.cgi?usr=foo&l=3&d=bar"><img src="http://www.xxx
.zzz/cgi-bin/icount.cgi?usr=foo&l=4&d=bar"><img src="http://www.xxx.zzz/cgi-bin/icount.cgi?
usr=foo&l=1&d=bar"></td></tr></table>

もしユーザー管理をディレクトリで行いたい場合は、サーバー上のユーザーディレクトリはあらかじめ作成し、パーミッションの設定も行っておいてください。また、同名のロックディレクトリも必要です。その上で以下のように指定します。ディレクトリを dt1、ユーザー名をfoo、フォントを bar、四ケタとします。

<table border=1><tr><td><img src="http://www.xxx.zzz/cgi-bin/icount.cgi?usr=dt1/foo&l=4&d=bar">
<img src="http://www.xxx.zzz/cgi-bin/icount.cgi?usr=dt1/foo&l=3&d=bar"><img src="http://www.xxx
.zzz/cgi-bin/icount.cgi?usr=dt1/foo&l=2&d=bar"><img src="http://www.xxx.zzz/cgi-bin/icount.cgi?
usr=dt1/foo&l=1&d=bar"></td></tr></table>

IPアドレスのチェックを無効にしたいときは以下のように指定します。この場合、同じ人が連続して再読み込みをしたとき、その回数だけカウンタが上がります。従って、あまりお勧めできません。カウンタは l=1 の時しか増加しないようになっています。従って ip=0 の指定は l=1 のタグにだけつければOKです。

<table border=1><tr><td><img src="http://www.xxx.zzz/cgi-bin/icount.cgi?usr=dt1/foo&l=4&d=bar">
<img src="http://www.xxx.zzz/cgi-bin/icount.cgi?usr=dt1/foo&l=3&d=bar"><img src="http://www.xxx
.zzz/cgi-bin/icount.cgi?usr=dt1/foo&l=2&d=bar"><img src="http://www.xxx.zzz/cgi-bin/icount.cgi?
usr=dt1/foo&l=1&d=bar&ip=0"></td></tr></table>

ステルスモードは以下のように指定します。width="0" height="0" を忘れないように。

<img src="http://www.xxx.zzz/cgi-bin/icount.cgi?usr=foo&show=0" width="0" height="0">

URLモード

URLモードは表示モードとチェックモードに分かれます。

表示モード

表示モードは、ステルスモードでカウンタが表示されないページのアクセス数を知りたい、あるいはカウントアップせずにアクセス数だけ知りたいときに使います。ユーザー名を foo とすると、URLを以下のように指定します。

http://www.xxx.zzz/cgi-bin/icount.cgi?show=1&usr=foo

チェックモード

チェックモードは、アクセスカウンタの設置がうまくいっているかどうかを調べます。とくに、うまくいっていないときにどこがまずいのか、有用な情報が得られます。ユーザー名を foo 、使用フォントを bold とすると、URLを以下のように指定します。

http://www.xxx.zzz/cgi-bin/icount.cgi?check=1&usr=foo&d=bold

結果は以下のように表示されます。これは、ユーザー指定が間違っている、ログファイルが無いなどの場合の表示例です。ロックディレクトリにも問題が指摘されています。

Check Mode
ログファイルのパスが不正です:./dt1/foo.dat 
ログファイルのパーミッションが不正です 
画像:./gif/bold/0.gif → OK! 
画像:./gif/bold/1.gif → OK! 
画像:./gif/bold/2.gif → OK! 
画像:./gif/bold/3.gif → OK! 
画像:./gif/bold/4.gif → OK! 
画像:./gif/bold/5.gif → OK! 
画像:./gif/bold/6.gif → OK! 
画像:./gif/bold/7.gif → OK! 
画像:./gif/bold/8.gif → OK! 
画像:./gif/bold/9.gif → OK! 
ロック形式:mkdir 
ロックディレクトリが不正です → ./lock/dt1 
ロックディレクトリのパーミッションが不正です → ./lock/dt1 

フォントの入手

フォントファイルは以下のサイトから入手できます。フリーのものも、そうでないものもあります。使用条件を確認してから使いましょう。

Digit Mania(English)
なまらファクトリー
HeartToMeHeartToMe

最後に

なぜ、こういうものを作る事になったか? うちの職場は「堅い」職場ですから、ホームページにアクセスカウンターをつけたりしていると「自己満足だ」などといい始めるやからが必ずいる。しかし、自分の作ったページがどのくらい見られているかに関心が無い、などというページはそれこそ「自己満足」じゃないだろうか? 私は大いに関心がある。艶噺の中でもっともスキ心をそそるのはどれか!? といって、やっぱすべてのページにカウンタがあるというのは照れくさいもの。そこでステルスなカウンタを作る気になった。

同じような心持ちの人はいると思う。そういうシャイな人に、このカウンターは使って欲しい。


このページのコンテンツの著作権はKhaki衛門が保持しています。
何らかの媒体に取り上げたいとお考えのときは、ご一報ください。
© KhakiEmon, all right reserved.

tingy@mx.niji.net

|ホーム|一般落語|艶笑落語|