Skip to main content.

NP_Counter 改

遅ればせながらNucleusを3.2にバージョンアップ。
作業自体はサックリ。拍子抜けするくらい。

ついでに懸案だったカウンターをちょっと改造。

まずはロボットかどうかを判定するメソッドを用意。
といってもユーザエージェントが特定の文字列を含むかどうかを判定するだけの単純なもの。

    function isRobot() {
        $user_agent $_SERVER[HTTP_USER_AGENT];
        $list = array(
                    "[Cc]rawl",
                    "[Bb]ot",
                    "[Ss]pider",
                    "[Ss]lurp",
                    "msnbot",
                    "Googlebot",
                    "Ask Jeeves",
                    "WISEnutbot",
                    "Tkensaku",
                    "NAMAAN",
                    "Alexa",
                    "ichiro@nttr.co.jp",
                    );

        foreach($list as $ua) {
            if (preg_match("/.*$ua.*/s"$user_agent)) {
                return true;
            }
        }
        return false;
    } 

っで、223行目あたりのif文にこいつの戻り値を加える。

            if ( !$this->isRobot() and
                ($count_mode == "normal" or 
                ($count_mode == "ip1" and $tlimit == and $new_ip != $old_ip) or 
                ($count_mode == "ip1" and $tlimit >  and $ip1_num[0] == 0) or 
                ($count_mode == "ip2" and $ip2_num[0] == 0))
               ) { 

5/1から試験運用してみたところ、先週は毎日200オーバー、多い日は400を超えていたカウンタが120程度に。
アクセスログ的も妥当なところかな。数値が減るのはやはり寂しいけれど、ロボットのカウントを喜んででも仕方ないしね。

^ TOP

[Nucleus] Posted on 2005-05-03 00:21

Comments

No comments

Add Comments

URLは自動的にリンクに変換します。
hrefが含まれているとスパムと判断してしまいますのであしからず。

Trackbacks

Trackback URL

Related Items

Local search for: カウンタ

Google search for: NP_Counter 改