public static function ban($ban_ip = null, $ban_time = 86400)
 {
     if (empty(parent::$config)) {
         return false;
     }
     if (!is_int($ban_time)) {
         return false;
     }
     if (empty(parent::$extra_config['header'])) {
         parent::$extra_config['header'] = 'Remote_Addr';
     }
     if (empty($ban_ip)) {
         if ('Remote_Addr' === parent::$extra_config['header']) {
             $header_name = 'REMOTE_ADDR';
         } else {
             $header_name = 'HTTP_' . strtoupper(parent::$extra_config['header']);
         }
         if (empty($_SERVER[$header_name])) {
             return false;
         }
         $ban_ip = $_SERVER[$header_name];
     }
     // Process whitelist
     foreach (parent::$ignoreip as $range) {
         if (parent::ip_in_range($ban_ip, $range)) {
             return false;
         }
     }
     // Prepare .htaccess rule
     $expires = time() + $ban_time;
     $ban_line = sprintf('SetEnvIf %s "^%s$" mini_ban #%s', parent::$extra_config['header'], preg_quote($ban_ip), $expires);
     return parent::alter_config('static::insert_with_markers', array('contents' => $ban_line, 'operation' => 'add'), 'r+');
 }
 public static function ban($ban_ip = null, $ban_time = 86400)
 {
     if (!is_int($ban_time)) {
         return false;
     }
     if (empty($ban_ip)) {
         $ban_ip = $_SERVER['REMOTE_ADDR'];
     }
     // Process whitelist
     foreach (parent::$ignoreip as $range) {
         if (parent::ip_in_range($ban_ip, $range)) {
             return false;
         }
     }
     $now = time();
     if (false === static::may_load_wordpress()) {
         return false;
     }
     $lockouts = get_option(static::$option);
     if (false === $lockouts) {
         $lockouts = array();
         add_option(static::$option, $lockouts, 'yes');
     }
     $expires = $now + $ban_time;
     $lockouts[$ban_ip] = $expires;
     update_option(static::$option, $lockouts);
     return true;
 }
 public static function ban($ban_ip, $ban_time = 86400)
 {
     if (empty(parent::$config)) {
         return false;
     }
     if (empty($ban_ip)) {
         $ban_ip = $_SERVER['REMOTE_ADDR'];
     }
     // Process whitelist
     foreach (parent::$ignoreip as $range) {
         if (parent::ip_in_range($ban_ip, $range)) {
             return false;
         }
     }
     // Client IP + UTC
     $expires = time() + $ban_time;
     $ban_line = sprintf("%s %s\n", $ban_ip, $expires);
     return parent::alter_config('static::write_callback', array('contents' => $ban_line), 'a');
 }