CGIカウンタ(imCTCGI)
トップページ】 【フリースクリプト
特徴

グラフィック表示とテキストが選択できます。
カウンタ値、アクセス時間、アクセス元リモートホストIPアドレス、リンク元URLがログに記録できます。
制限時間内のリロードをカウントさせない設定が可能です。
カウンタマネージャを併用すれば、カウンタ値の変更やリモートホストIP調査ができます。


サンプル

サンプル(グラフィック表示設定にしたカウンタ)
サンプル(テキスト表示設定にしたカウンタ)
アクセスログ(カウンタスクリプトで記録されたアクセスログ)


ダウンロード

imCTCGI ver1.02(LHAファイル:  16k)


ファイルレイアウト

ダウンロードした圧縮ファイルを解凍すると、以下のようなディレクトリ構成でファイルが展開されます。
このままの構成であればユーザ変数の編集をしないで動作確認が可能となっています。
[ ] 内の値は、パーミション-転送モード(A:ASCCI / B:BINARY)を示します。

CTCGI_***(***はバージョン)
    ├ cgi-bin
    |  └ imCTCGI [755]
    |      ├ im_ctcgi.cgi     [705-A] アクセスカウンタスクリプト
    |      ├ index.dat        [644-A] カウンタを表示させたいHTMLのソース
    |      ├ im_ctman.cgi     [705-A] カウンタマネージャスクリプト
    |      ├ data [755]
    |      │  ├ count.dat    [606-A] カウントデータファイル(初期値 0 )
    |      │  └ access.log   [606-A] アクセスログファイル(空ファイル)
    |      └ lock [707] ← パーミッション注意
    |          ├ ct.lock      [606-A] カウントデータファイル用ロックファイル(空ファイル)
    |          └ ac.lock      [606-A] アクセスログファイル(空ファイル)
    └homeimCTCGI [755]
           ├ index.html        [644-A] このファイル(動作上不要)
           ├ sample.html       [644-A] カウンタスクリプトを起動するためのHTMLファイル
           └ img [755]
               ├ 0.gif         [644-B] カウンタ値 0 に相当する画像
               ├ 1.gif         [644-B] カウンタ値 1 に相当する画像
               ├   :
               └ 9.gif         [644-B] カウンタ値 9 に相当する画像

    ※cgi-binディレクトリのファイルはCGIが実行可能なディレクトリに置いて下さい。
    ※CGI専用サーバが指定されている場合はデフォルトの設定では動作しないこともあります。


ファイル説明

imCTCGIで必要なファイルは以下の通りです。(編集項目を確認したい場合は、スクリプト名をクリックして下さい)

im_ctcgi.cgi
    カウンタ本体のスクリプトです。
    Perlのパスを確認し、必要に応じ編集する必要があります。
    使用環境に合わせてユーザ変数をテキストエディタで編集する必要があります。

im_ctman.cgi
    カウウンタマネージャのスクリプトです。
    Perlのパスを確認し、必要に応じ編集する必要があります。
    使用環境に合わせてユーザ変数をテキストエディタで編集する必要があります。
    「パスワード」は、アクセスログ確認時に承認画面のパスワード欄に入力する文字列です。
    whoisコマンドが利用できないサーバでは「whoisコマンドの利用可否」を 'no' に設定して下さい。

sample.html
    自動リロード機能を利用してカウンタスクリプトを起動するファイルです。
    Javaスクリプトを利用してリモートホスト(アクセス元)のIPアドレスを取得しています。
    このファイルを参考に index.htmlを作成してトップページにカウンタを表示させることも可能です。

index.dat
    表示されるHTMLファイルのもとになるデータです(通常のHTMLファイルと同様の書き方です)。
    <!--#COUNT-->と記述した部分がカウンタ値/カウンタ画像と置き換わります。
    <!--#REMOTE_ADDR-->と記述した部分がアクセス元のリモートホストIPアドレスと置き換わります。

count.dat
    カウントデータファイルです。(初期値 0)

access.log
    アクセスログデータファイルです。(空ファイル)

ct.lock
ac.lock
    データファイル保護用のロックファイルです。(空ファイル)

*.gif
    グラフィックカウンタとして使用する際に表示させる数値画像ファイルです。
    ファイル名を対応させる数値 n に逢わせて n.gif とし、0.gif〜9.gifまでの各数値画像を用意して下さい。
    画像ファイルは、任意のGIF画像が使用可能です。


設置手順

01).グラフィックカウンタとして使う場合、数値0〜9に対応する0.gif〜9.gifの数値画像を用意します。

02).im_ctcgi.cgiのユーザ変数をテキストエディタで編集します。

03).im_ctman.cgiのユーザ変数をテキストエディタで編集します。

04).HTMLエディタなどでカウンタ値を表示させたいHTMLファイルを作成し、ファイル名をindex.datとして保存します。
    ※カウンタ値を表示させたい部分に<!--#COUNT-->と記述します。
    ※アクセス元リモートホストのIPアドレスを表示させたい部分に<!--#REMOTE_ADDR-->と記述します。

05).トップページ(index.html)呼び出しで利用したい場合は、同梱のsample.htmlをindex.htmlと名称変更します。
    ※自動リロードでカウンタスクリプトを起動すると共にJavaScriptを利用してリンク元アドレスを取得します。

06).FTPソフトなどでファイルをサーバに転送します。

07).サーバに転送したファイルのディレクトリやファイルのパーミッションを設定します。

08).ブラウザからim_ctcgi.cgiをリクエストします。
    正しく設置できていればindex.datの内容と共にカウンタ値が表示されます。
    ※手順 05 でindex.htmlを準備した場合は index.htmlをリクエストしてim_ctcgi.cgiが起動することも確認します。

09).次にim_ctman.cgiをリクエストし承認画面が表示されたらパスワードを入力しログインして下さい。
    正しく設置できていればアクセスログが表示されます。


カウンタマネージャの使い方

im_ctman.cgi を利用するとカウンタ値の修正やアクセスログの管理ができます。

【カウンタマネージャの起動】
    ブラウザからim_ctman.cgiリクエストし承認画面でパスワードを入力しログインボタンを押します。
    パスワードはim_ctman.cgiのユーザ変数で設定したものを入力してください。

【カウンタ値の修正】
    テキストエリアに任意の数値を記入し[カウンタ値修正]ボタンを押して下さい。

【ログ再読込】
    アクセスログを再読込したい場合には[再読込]ボタンを押して下さい。

【アクセスログのクリア】
    アクセスログを初期化(空ファイルに)する場合は[ログクリア]ボタンを押して下さい。

【アクセスログの見方】
    アクセスログには以下のデータがリスト形式で表示されています。
    COUNT:アクセス時のカウンタ値です。
    REMOTE_ADDR :  アクセス元サーバのIPアドレスです。
                    ※whoisコマンドが利用できる場合はここをクリックするとIPアドレス調査ができます。
    ACCESS_TIME :  アクセスした時間です。
    USRE_AGENT  :  アクセス時に利用されたブラウザの情報です。
    HTTP_REFERER:  リンクを辿ってきた際は、リンク元のURLが表示されます。


特記事項

【JPNICデータベースの利用について】
    IPアドレス調査は、JPNICのデータベースを利用しています。
    JPNICのデータベース利用規定を守り適切な運用を行って下さい。

【imCTCGI(CGI式カウンタ)をフレームで起動する際の制約】
    フレームを利用してim_ctcgi.cgiを起動したときリンク元URLはフレームを定義したファイルとなりカウントアップしません。
    フレームを利用してim_ctcgi.cgiを起動するきは$im_env{'set_url'}に存在しないURLを設定してください。
    ※自分のホームページアドレスを入力した場合はカウントアップしません。

【未カウントの条件】
    ユーザ変数$im_env{'set_url'}で指定したURLを含むリクエストのときはカウントアップしません。
    ユーザ変数$im_env{'retry_limit'}設定時間(秒)内での同一IPアドレスのアクセスはカウントアップしません。
    ※設定時間内に複数回のリクエストがあった場合は最後のリクエストがあった時間を基準にします。
    ※この機能はアクセスログを不要とした場合(またはアクセスログの行数指定が極端に小さい場合)は機能しません。