<?php<liu21st@gmail.com>
defined('THINK_PATH') or exit();
/**
* 机器人检测
* @category Extend
* @package Extend
* @subpackage Behavior
* @author liu21st <liu21st@gmail.com>
*/
class RobotCheckBehavior extends Behavior {
protected $options = array(
'LIMIT_ROBOT_VISIT' => true, );
public function run(&$params) {
if(C('LIMIT_ROBOT_VISIT') && 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;
}
}