public function unban()
 {
     // Missing or uninitialized Miniban
     if (!class_exists('Miniban', false) || empty(Miniban::$config)) {
         return;
     }
     Miniban::unban();
 }
 /**
  * Trigger fail2ban and respond HTTP/403.
  *
  * @return null
  */
 private function trigger()
 {
     // Trigger miniban
     if (class_exists('Miniban') && $this->instant_trigger) {
         if (true !== Miniban::ban()) {
             error_log('Miniban operation failed.');
         }
     }
     // Trigger fail2ban
     if ($this->instant_trigger) {
         $this->enhanced_error_log($this->prefix_instant . $this->result, 'crit');
     } else {
         $this->enhanced_error_log($this->prefix . $this->result);
     }
     // Log POST requests after trigger - multi-line logging problem on mod_proxy_fcgi
     if (defined('O1_BAD_REQUEST_POST_LOGGING') && O1_BAD_REQUEST_POST_LOGGING) {
         if ('POST' === $_SERVER['REQUEST_METHOD']) {
             $this->enhanced_error_log('HTTP POST: ' . $this->esc_log($_POST), 'notice');
         }
     }
     ob_get_level() && ob_end_clean();
     if ($this->is_options_method) {
         $this->disable_options_method();
     } elseif ($this->is_xmlrpc) {
         $this->fake_xmlrpc();
     } elseif (!headers_sent()) {
         if ($this->is_wplogin && !empty($_POST['log'])) {
             $this->fake_wplogin();
         } else {
             $this->ban();
         }
     }
 }
<?php

require './miniban-base.php';
require './miniban-htaccess.php';
Miniban::init('./.htaccess', array('127.0.0.0/8', '1.2.3.4', '66.249.0.0/16'));
//Miniban::init( './.htaccess', array( '127.0.0.0/8', '1.2.3.4', '66.249.0.0/16' ),
//    array( 'header' => 'X-FORWARDED-FOR' ) );
// Returns false
var_export(!Miniban::ban('66.249.8.1'));
echo "\n";
var_export(Miniban::ban('12.23.45.67'));
echo "\n";
var_export(Miniban::unban('12.23.45.67'));
echo "\n";
var_export(Miniban::ban('12.23.45.67'));
echo "\n";
var_export(Miniban::ban());
echo "\n";
// Cron job to unban expired bans
var_export(Miniban::unban());
echo "\n";
 private function trigger_instant($slug, $message, $level = 'crit')
 {
     // Trigger Miniban at first
     if (class_exists('Miniban')) {
         if (true !== Miniban::ban()) {
             $this->enhanced_error_log('Miniban operation failed.');
         }
     }
     $this->trigger($slug, $message, $level, $this->prefix_instant);
     // Remove session
     remove_action('wp_logout', array($this, 'logout'));
     wp_logout();
     // Respond
     ob_get_level() && ob_end_clean();
     if (defined('XMLRPC_REQUEST') && XMLRPC_REQUEST) {
         $this->fake_xmlrpc();
     } elseif (!headers_sent()) {
         if ('wp-login.php' === $GLOBALS['pagenow'] && !empty($_POST['log'])) {
             $this->fake_wplogin();
         } else {
             $this->ban();
         }
     }
     exit;
 }