Hato Server

個人的に作ったものを公開するラズパイサーバー。

Bot検出アクセスカウンタ

~ネット世界のBot率をサンプリング~

Human: 22524人
Bot: 2428機
詳しくはこちら

Profile

hato

javascriptから機械語まで、
ブレッドボードから外装まで、
ラズパイからファミコンまで、
が目標。



index > access


アクセスカウンタの設定に注意! サイトアクセスのBot率を調べる

このたび、当サーバーにアクセスカウンタを設置しました。
2017年5月現在、PC版サイトの右側にウィジットを設置しています。
こちらのリンク先からも閲覧可能です。

さて、私は以前にもアクセスカウンタを利用したことがあります。
1000アクセス、10000アクセスを突破するごとに喜んでいました。
しかしアクセスカウンタの設定次第では、実際のアクセスよりも過剰にカウントしてしまうことがあるのです。

アクセスカウンタのスクリプトをこちらで公開しています。

サイト訪問者が人間とは限らない

ネット上では、人間だけでなくBotも活動しています。
例えば、検索サイトのクローラや、スパムコメントをするBotがあります。
そして、(Botの善悪に関わらず)大量にアクセスしてくることがあります。
これが、もしアクセスカウンタに反映されていたら、どうでしょうか?
やはり、自分の記事はぜひ人間に読んでいただきたいと思うはずです。

設定があれば、Botのカウントを外そう!

アクセスカウンタにBotのカウントを外す機能があれば、ぜひ使うべきだと思います。
しかし、私はアクセスカウンタを自作してみたので、Bot判定機能を独自で実装しました。

そして、Botのアクセスを排除するのではなく、あえて記録することにしました。
人間とBotのアクセスを別々に記録することで、サイトアクセスのBot率を調べるのです。
ネット世界のBot率を実感していただくことが、私のアクセスカウンタの目的です。

PHP + javascriptで実装

アクセスカウンタを作るにあたって、サーバー側のカウント処理にPHP、円グラフの描画にjavascriptを用いました。
PHPでは、単純なファイル読み書きを行っています(もちろん、ファイルロックで衝突回避もしています)。
また、htmlのcanvas要素を用いて、円グラフを描画しています。
描画のための計算を行っているのが、javascriptです。
なお、プログラムはマジックナンバーだらけだったりします(笑)

Botの判定にあたっては、ブラウザが発行するユーザーエージェントプロパティを利用しています。
スマホユーザーであれば「Android」、GoogleクローラBotであれば「Googlebot」のように、端末情報を発行してくれるのです。

完全にBotを判定することはできない

しかし、ユーザーエージェントではBotを厳密には判定できません。
そして、現在のところ(2017年)、Botを完全に判定することはできません。
まあ、判定できればスパムBotを完全に遮断してますしね。
Botを判定できるのは、善良なBotがその旨を通知してくれるからなのです。




コメント

自作コメントフォームです。
プレーンテキストでコメントをどうぞ。






クリエイティブ・コモンズ・ライセンスhato 作『hato server』はクリエイティブ・コモンズ 表示 4.0 国際 ライセンスで提供されています。