無料(フリー)掲示板CGIプログラムとwebツール

HitBBS 初めに お約束 設置の基本 見本 DL&更新情報

※「お約束」に同意できない場合は使用する事が出来ません。

K2.1-詳細

このアクセスカウンターは、主に検索ボット(クローラー)を数える為のアクセスカウンターです。
一応、通常のアクセスもカウントします。

サイトのページや掲示板に仕掛けると、どんなクローラーがどれくらい訪問しているのかわかります。 ご自分でCGIを設置できないレンタルブログ等では使えません。

画像ファイルやwebページごとCGI出力するタイプで、検知力は抜群です。

プログラムの動作の流れ。
実行ファイルにアクセス→プログラム実行(カウント)→ページ又は画像を表示

必須条件
  • 特になし(Perl用)
推薦条件
  • .htaccessd使用可
    ※検知力を上げられます。
主な機能
  • クローラー(検索ボット・画像検索ボット)のカウント
  • 約700種類以上のクローラーを即値で検知し、ログに識別名を記録
  • 即値以外の汎用のクローラーも検知(失敗する事もあります。)
  • 大手検索サイトのクローラーに偽装したものを判別
  • クローラー以外の通常のアクセスもカウント
  • アクセスが多い順に集計データを表示
  • 最大カウント数:無制限(理論値)

ファイル構成 - (転送モード)

ZIP ┐
    ├ k2 ┐
    │    ├ pl ┐
    │    │    ├ bot-check.pl ------------- (アスキー)
    │    │    ├ bot-count.pl ------------- (アスキー)
    │    │    ├ image.jpg ---------------- (バイナリー)
    │    │    ├ index-stat.pl ------------ (アスキー)
    │    │    ├ k2_data.pl --------------- (アスキー)
    │    │    ├ k2_sub.pl ---------------- (アスキー)
    │    │    ├ page-out.pl -------------- (アスキー)
    │    │    ├ page.html ---------------- (アスキー)
    │    │    └ view-stat.pl ------------- (アスキー)
    │    │
    │    ├ htaccess.txt ------------- (アスキー)
    │    ├ img2018as234f543ai16.cgi - (アスキー)
    │    ├ index.cgi ---------------- (アスキー)
    │    └ view.cgi ----------------- (アスキー)
    │
    └ 「転送不要ファイル」

アップロード

設定が出来たら、設置の基本にある様にサーバにアップロードします。

プログラム実行に必要な権限

拡張子.cgiは、実行・読み取り・書き込み、の権限が必要です。
拡張子.plは、読み取り・書き込み、の権限が必要です。
画像に偽装した実行ファイルは実行権が必要です。

CGIプログラムが獲得できる権限に合わせて下さい、サーバによって変わります。
例えば、ユーザー権限で動作する場合、PLファイルはその他グループで読み書き出来る権限は不要になります。

パーミッションについて

大抵はサーバの方で指定していると思うので、その値を使用して下さい。 もし指定が無いようでしたら次の値でお試し下さい。

CGIファイル 705又は755又は775
PLファイル 604又は644又は664
ログファイル 600又は660
ディレクトリ 755又は775
ログ専用ディレクトリ 700又は770
公開用ログディレクトリ 755又は775
公開用ログファイル 644又は664
CSS、HTMLファイル等 604又は644又は664又は666

※問題が出なければ、数字の小さい方を採用して下さい。


主要ファイル概要

index.cgi
実行ファイルです。 実行するとページや画像を表示します。 それと同時にクローラー(検索ボット)を数えてログに書き込みます。
view.cgi
実行ファイルです。 記録されたクローラーをアクセスが多い順に並べて表示します。 パスワードて保護できます。
img2018as234f543ai16.cgi
これは、画像用にディレクトリに偽装した実行ファイル(CGIファイル)で、中身はindex.cgiと略同じものです。 画像収集クローラーも検知しますが、.htaccessdが使用出来ない時は不要となります。 サーバへ転送後にview.cgiに、ブラウザでアクセスすると拡張子が削除されます。

このファイルにはCGIと同じ様にパーミッションの実行権を与えて下さい。

htaccess.txt
.htaccessdをテキストで書き出したものです。 サーバに転送後、ファイル名を.htaccessdに変更して下さい。 使用しない場合は削除して下さい。
bot-check.pl
クローラーを判別します。
k2_data.pl
初期設定ファイルです。
page.html
index.cgiを実行すると表示されるページのスキンファイルです。
image.jpg
実行すると表示される画像ファイルです。

K2.1-マニュアル


インストール・アンインストール

インストールは、アップロードして、cgiにブラウザでアクセスしてページが表示されるか確認するだけです。具体的な方法はページ下を見てください。
view.cgiに、ブラウザでアクセスするとimg2018as234f543ai16.cgiの拡張子が削除され、画像収集クローラーの検知が出来るようになります。
.htaccessdが使用可能なら、htaccessd.txtの名前をアップロードソフト等で「.htaccessd」に変更します。
作成された各ディレクトリやファイルのパーミッションを確認(特に実行権の確認)をした後に、クローラー(画像検索ボット)検知用のタグを貴方のwebページに設置して完了です。

アンインストールは、不要なファイルやディレクトリを削除すると共に、設置したクローラー(画像検索ボット)検知用のタグを削除して下さい。 それだけです。

index.cgiを複製して、いくつか別のページにカウンターを仕掛ける事が出来ます。 それぞれ、index.cgiの設定を設置した場所に合わせて変更して下さい。

表示するHTMLページは、$HTML_pageの設定でファイル名を指定してPLディレクトリに入れて下さい。


使い方

設置後は、クローラーがアクセスするのをひたすら待つだけです。 ログファイルを公開したくない時は、初期設定の「$_->{file_log}」の項目で拡張子を.cgiにして下さい。

index.cgiにブラウザでアクセスすると、webページとカウント数が表示されます。

view.cgiにアクセスすると、集計データが見れます(記録モード2の場合)。 公開したくない場合は、パスワードを設定して下さい。

クローラー統計(集計データ)

表示するには、view.cgiにブラウザでアクセスします。 パスワードを設定している場合は、URLの最後に
「?pas=設定したパスワード」を付けてアクセスして下さい。

◎アクセス数
アクセスカウント数です。「Bot (クローラ) Oth (その他)」となっています。

集計データ

初期設定の「$_->{recording_mode}」で「2」を設定した時に表示されます。 後で「0」に設定し、view.cgiにアクセスするとデータがリセットされますのでご注意ください。

◎Max
個別カウントの最大数です。

◎Min
個別カウントの最小数になります。

◎ボット数
何種類のクローラーがアクセスして来たのか、その数を表示します。アクセス数では無く種類の数です。 同じクローラーでも、画像にアクセスしたものとwebページにアクセスしたもとモバイル用は別物として数えられます。

◎データ項目
「個別カウント数 クローラー識別名」となっています。

具体的な使用例

トップページにカウンターを仕掛ける時

まず、サイトのトップページのURLがファイル名ではなくドメインやディレクトリ名等で終わっている場合(https://○○.com/ など)では、 実際のトップページのファイルはHTMLで、index.html等のページで、名前部分は「index」になっているはずです。

最初に、トップページのファイル名を「page.html(HTMLファイルの場合)」に変更します。

次に、自サイトのホームディレクトリに、K2カウンターをアップロードするディレクトリを「counter」名で作ります。

K2カウンタープログラムの設定を変更し、アップロードします。 この際、K2カウンターのindex.cgiはトップページのある場所へアップロードします。 設定値「PLディレクトリ」の設定は、index.cgiから見た相対パスでは、counterディレクトリの中にPLディレクトリが入りますので、「./counter/pl」となります。

名前を変えたトップページのpage.htmlをPlディレクトリに移します。

ブラウザでサイトのトップページへアクセスし、表示されるか確認します。

404番のエラーが出る時はindex.cgiが見つけられない事を意味します。 URLの最後に「index.cgi」とファイル名を付けて再度アクセスすると表示される時は、 ファイル名無しのURLではアクセス不可能になります。ご注意ください。

500番のエラーが出る時は、K2のindex.cgiCGIは発見され実行も出来ますが、index.cgiの設定値などに間違いがあるか、何か不具合が発生しているものと思われます。

トップページのURLがファイル名で終わる場合で、トップページの名前を変更したくない時は、K2カウンター用の別ページを作り、トップページにそのリンクを載せる等の方法でカウンターを設置して下さい。 当たり前ですが、この場合、トップページにアクセスしただけではカウントされません。

トップページ以外にカウンターを仕掛ける時

上記の方法で、トップページ以外の「index.html」ページにもカウンターを仕掛けられます。設定値は変わります。

ファイル名がindex.html以外のページに仕掛けたい時(画像を除く)

元のファイル名を変更したくない場合は、 HTMLのタグIframe要素を使うか、アンカータグでページにK2カウンターのindex.cgiへのリンクを載せて下さい。

Iframe内のページは、K2カウンターのpage.htmlを参考にご自分で適当に作って下さい、 この場合Iframe内で表示されるページは、ある程度は文字数のあるページにしないと、クローラーがアクセスして来なくなります。

掲示板に仕掛けたい時

掲示板にカウンターを仕掛けると、掲示板にアクセスして来たクローラー(ボット)をカウント出来ます。

仕掛けられるのは、掲示板V3とV12意外となります。V3はクローラーを弾くので仕掛けても無意味です。V12は既にクローラー検知機能が備わっています。

仕掛ける要点としては、掲示板のスキンにリンクやIframelyを使って仕掛けるか、掲示板CGI内部に組み込むかです。 CGI出力の掲示板にはCGI内部に組み込めますが、HTML出力の掲示板は閲覧が通常のHTMLページなので組み込んでもカウントしません。 リンクやIframelyを使った場合、掲示板にアクセスしてそのリンク先にアクセスしないとカウントされません。

掲示板のスキンに仕掛けく場合は、インサートスキンには仕掛けないで、ページのスキンにして下さい。 インサートスキンはwebの一ページに複数同時に表示される事があります。

◎掲示板への組み込み方
アップロードする場所は、掲示板プログラムをアップロードした場所と同じ場所にplディレクトリだけをアップロード。 その後、掲示板のプログラムにカウンターのコードを追加。

K2カウンターの初期設定ファイルを読み込まずに、カウントはbot-count.plを直接起動させるので、bot-count.plファイルの上の方にある初期設定を変更します。 設定内容は、一部を除いて初期設定と同じですが、相対パス設定の場合は、掲示板CGI(拡張子が.cgiのファイル)から見た値に変更する必要があります。

記録モードの設定も、初期設定を読み込まない為、ここで「$_->{recording_mode}」から数字に変更する必要があります。

◎設定例
(掲示板と同じ場所へplディレクトリをアップロードした場合)
my $dir_pl = './pl'; # PLディレクトリ
my $dir_log = './pl/k2_log';
my $file_log = 'k2_log.htm';
my $dir_tmp = './pl/k2_tmp';
my $recording_mode = 2;

そして掲示板プログラムにコードを追加します。 掲示板のindexに仕掛ける時は、大体そのページを表示するスキンファイルの上の方、「# HitBBS(c)」がある場所より一行下辺りに追加します。

掲示板CGIに追加するコードは、「require」でbot-count.plをロードします。 クォーテーションで囲んだファイルパスを指定します。

直後に「&logcount(0,0);」で実行させます。

◎コードの例
(上記の設定の場合)
require './pl/bot-count.pl'; &logcount(0,0);


管理の仕方

日々の管理は、クローラーのアクセスログがファイルに記録されるのでその確認と、容量が増えると分割されますので、それらのダウンロードや削除などだけです。


エラーについて

「致命的なエラー」画面に文字が表示されるだけです、ログはありません。


ログについて

クローラーのログは、クローラーと判定されたものはアクセス時(CGI実行時)に、初期設定
「$_->{file_log}」で設定したファイル名でログディレクトリ内に記録されます。

ログファイルの容量が、約500kバイトを超えるとファイル名に数字が付けられて分割されます。

ログ内容

「アクセス日時 クローラー識別名 ホスト(アドレス) ユーザーエージェント(UA) リクエストアドレス(URI)」となっています。


ディレクトリ構造(デフォルト値)

─┐
  ├ pl ┐
  │    ├ k2_log ┐<------------------ (ログディレクトリ)
  │    │        ├ bots <------------ (集計データディレクトリ)
  │    │        │
  │    │        ├ bot_max-no.txt <-- (カウンターのデータ)
  │    │        ├ ord_max-no.txt <-- (カウンターのデータ)
  │    │        └ k2_log.htm <------ (クローラーのログ)
  │    │
  │    ├ k2_tmp <-------------------- (タップディレクトリ)
  │    │
  │    └ 「HTMLページ・PLファイル等」
  │
  └ 「CGI等」

注意

実行ファイルimg2018as234f543ai16と同じ名前のディレクトリが、このプログラム用の.htaccessdがあるディレクトリ下に存在する場合は競合してエラーが出ます、 このプログラム用の.htaccessdを削除するか、名前を変更して下さい。

本来の用途以外には使わないで下さい。


設定値

初期の設定は見本と同じになっています、環境に合わせて変更して下さい。

文字コードはUTF-8ボム無しになっています。


index.cgi
view.cgi
img2018as234f543ai16.cgi

CGI実行ファイルです。

  • #!/usr/bin/perl
    アップロードするサーバで指定されているものに変更して下さい。

  • $adminPassword
    パスワードを設定します。view.cgiのみにある変数です。空文字設定「""」だとパスワード無しでview.cgiが実行され、集計データが見れます。

  • $HTML_page
    表示するページや画像を設定します。 PLディレクトリ内から見た相対パスか絶対パスで指定します。URLではなく、サーバのディレクトリパスです。

  • $set_data
    初期設定ファイルを設定します。同じくPLディレクトリ内から見たディレクトリパスで指定します。

  • $dir_pl
    PLディレクトリの場所を設定します。同じくPLディレクトリ内から見たディレクトリパスで指定します。


bot-check.pl

クローラー(ボット)を判別します。

クローラーとしないものを指定
  • $next_host
    クローラーとしてカウントされたくないホストを設定します。
    設定方法は
    「my $next_host = 'hitbbs.jp';」
    このようにホストを略さずに指定します。半角スペースで区切り、複数指定できます。
    無い場合は、「''(空文字)」を設定して下さい。

    ※IPv6には対応していません。


k2_data.pl

初期設定ファイルです。

ログファイルURL
  • $_->{url_file_log}
    ログファイルのURLを設定します。なるべくフルパスで指定して下さい。公開しない場合は、「''(空文字)」を設定して下さい。

ログディレクトリ
  • $_->{dir_log}
    ログディレクトリの場所を設定します。デフォルトではPLディレクトリに「k2_log」の名前で作られます。ログが保存される場所です。

ログファイル名
  • $_->{file_log}
    ログファイル名を設定します。使える文字は、半角英数小文字と「_(アンダーバー)」と「-(ハイフン)」と、それに拡張子のみです。名前部分は特に変更の必要はありませんが、ログを非公開にする場合などは拡張子を.cgiにして下さい。このカウンターを複数設置した場合などに分かりやすい名前に変更する事も出来ます。

タップディレクトリ
  • $_->{dir_tmp}
    タップディレクトリ(tmp)の場所を設定します。デフォルトではPLディレクトリに「k2_tmp」の名前で作られます。実行時に一時的に作られるファイルやフォルダを置く場所です。

表示用JPEG画像
  • $_->{for_image}
    クローラー検知用画像を設定します。これはJPEG画像のみ設定できます。クローラー(画像検索ボット)検知用画像表示タグにアクセスしてくるクローラーを検知する為の物で、画像を別なものに変えても変えなくてもどちらでも良いですが、見栄え上別の画像に変更する事を進めます。

記録モード
  • $_->{recording_mode}
    記録モードを設定します。
    0=ログ記録のみ行います、CGIの実行速度が速いです。
    1=アクセス数をカウントします。
    2=個別の集計も記録します、これはview.cgiにブラウザでアクセスすると表示される集計データです。CGIの実行速度がその分は遅くなります。

    0を設定しますと個別の集計がリセットされます、アクセスカウント数はリセットされません。

個別集計の表示数
  • $_->{ind_disp_num}
    view.cgiにアクセスすると表示される集計データのクローラー(検索ボット)数。


page.html

クローラーがアクセスして、index.cgiが実行すると表示されるwebページです。 デモ版では、文字コードがUTF-8で作られています。 ブラウザでアクセスしても表示されますが、カウントはされません。

このファイルは、専用タグを除いて、普通のHTMLファイルと同じです。普通にホームページ作成ソフト等を使っても作れます。

このファイルには、外部から直接アクセス出来ない様にパーミッションを工夫して下さい。 もし、不可能でしたら、拡張子を.cgiに変更します(初期設定も.htmlから.cgiに変えます)。 拡張子のみの変更で良く、中身はそのままHTMLページで構いません。

使われている変数の内容
<!-- BOT__TotaL_Nom -->
専用タグです。 クローラーのアクセス数をその場所へ表示します。 カウントしていない場合は、「0」を表示します。
<!-- ORDINARY__TotaL_Nom -->
専用タグです。通常のアクセス(クローラーではない判定のアクセス)数をその場所へ表示します。 カウントしていない場合は、「0」を表示します。
<img src="index.cgi?jpg" alt="" width="20" height="20" border="0" />
これは普通のHTMLのタグです。 クローラー(画像検索ボット)検知用のタグになります。 クローラー検知用の画像を表示します。 画像は、index.cgiにアクセスするURLの最後に「?jpg」を付けると表示されます。

このタグは必ずしもこのファイルに設置する必要はありません、画像にアクセスするクローラーを検知したいページに設置する事を進めます。

<img src="img2018as234f543ai16/image.jpg" alt="" width="20" height="20" border="0" />
これも普通のHTMLのタグです。 こちらは、.htaccessdが使える環境用のもので、完全に画像に偽装できますのでクローラーの検知力が上がります。

このタグも、このファイルに設置する必要はありません、画像にアクセスするクローラーを検知したいページに設置する事を進めます。


HitBBS 初めに お約束 設置の基本 見本 DL&更新情報


HitBBS (c)
 管理人:ひとちゃん