ai_crawlers = new WPBan_AI_Crawlers(); $this->seo_crawlers = new WPBan_SEO_Crawlers(); } public function check_ban() { $ip = ban_anything_get_ip(); $options = $this->get_options(); $is_banned = false; foreach ($options['banned_ips'] as $banned_ip) { if (preg_match_wildcard($banned_ip, $ip)) { $is_banned = true; break; } } if ($is_banned && !in_array($ip, $options['banned_exclude_ips'])) { $this->update_stats($ip, 'ip_ban'); $this->print_banned_message(); } } public function print_banned_message() { $options = $this->get_options(); $message = str_replace( ['%SITE_NAME%', '%SITE_URL%', '%USER_IP%', '%USER_HOSTNAME%'], [get_option('blogname'), get_option('siteurl'), ban_anything_get_ip(), @gethostbyaddr(ban_anything_get_ip())], stripslashes($options['banned_message']) ); wp_die($message, 'Access Denied', ['response' => 403]); } public function restrict_login_access() { $options = $this->get_options(); if (strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false) { $user_ip = ban_anything_get_ip(); $allowed_ips = $options['login_restrictions']['allowed_ips'] ?? []; if (!empty($allowed_ips) && !ban_anything_ip_in_range($user_ip, $allowed_ips)) { $this->update_stats($user_ip, 'login_restriction'); wp_redirect(home_url()); exit; } } } public function block_wechat_qq_browsers() { $options = $this->get_options(); $ua = $_SERVER['HTTP_USER_AGENT'] ?? ''; if (strpos($ua, 'MQQBrowser') !== false || strpos($ua, 'MicroMessenger') !== false) { $settings = $options['wechat_qq_settings']; if ($settings['enabled']) { $this->update_stats(ban_anything_get_ip(), 'wechat_qq_block'); ?>
⚠
You are banned.
$data) {
echo esc_html("$ip ({$data['count']} times, last: {$data['last_time']}, type: {$data['type']}) "); } } ?> |