| 1234567891011121314151617181920212223242526272829303132333435363738394041 | <?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]// +----------------------------------------------------------------------// | Copyright (c) 2009 http://thinkphp.cn All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: liu21st <liu21st@gmail.com>// +----------------------------------------------------------------------namespace Behavior;/** * 机器人检测 * @author   liu21st <liu21st@gmail.com> */class RobotCheckBehavior {        public function run(&$params) {        // 机器人访问检测        if(C('LIMIT_ROBOT_VISIT',null,true) && self::isRobot()) {            // 禁止机器人访问            exit('Access Denied');        }    }    static private function isRobot() {        static $_robot = null;        if(is_null($_robot)) {            $spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';            $browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';            if(preg_match("/($browsers)/", $_SERVER['HTTP_USER_AGENT'])) {                $_robot	 =	  false ;            } elseif(preg_match("/($spiders)/", $_SERVER['HTTP_USER_AGENT'])) {                $_robot	 =	  true;            } else {                $_robot	 =	  false;            }        }        return $_robot;    }}
 |