Exemple #1
0
 /**
  * @return CsbHttpBl
  */
 public static function getInstance()
 {
     if (!self::$_instance) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
Exemple #2
0
 public function isBlockIp($ip, $details = array())
 {
     $visitorType = CsbHttpBl::getInstance()->getVisitorType($ip);
     // for now only check is it search engine
     if ($visitorType === CsbHttpBl::VISITOR_SEARCH_ENGINE) {
         $tillTime = date('Y-m-d H:i:s', strtotime("+ " . self::SEARCH_ENGINE_CACHE_TIME_DAYS . " days"));
         $this->addIpInfo($ip, self::TYPE_SEARCH_ENGINE, $tillTime);
         CsbLog::model()->log($ip, CsbLog::TYPE_SEARCH_ENGINE, $tillTime, $details);
         return false;
     } else {
         if (empty($details['block time'])) {
             throw new App_Exception_System("Param 'blockTime' is not set");
         }
         $blockTillTime = date('Y-m-d H:i:s', strtotime("+ " . $details['block time'] . " second"));
         $this->addIpInfo($ip, self::TYPE_BLOCKED, $blockTillTime);
         CsbLog::model()->log($ip, CsbLog::TYPE_LOCK, $blockTillTime, $details);
         return true;
     }
 }
Exemple #3
0
 /**
  * @param $ip
  * @param $type
  * @param $tillTime
  * @param $details
  * @return mixed
  */
 public function log($ip, $type, $tillTime, $details)
 {
     $ipInfo = CsbHttpBl::getInstance()->getHttpBlInfo($ip);
     $model = new CsbLog();
     $model->setAttributes(array('ip' => ip2long($ip), 'type' => $type, 'create_time' => date('Y-m-d H:i:s'), 'till_time' => $tillTime, 'account_id' => Yii::app()->user->getId(), 'request_info' => CsbYaml::dump($this->_filterServerInfo()), 'ip_info' => CsbYaml::dump($ipInfo), 'details' => CsbYaml::dump($details)));
     $model->save();
     return $model;
 }