????JFIF??x?x????'
| Server IP : 172.67.174.47  /  Your IP : 216.73.216.83 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /././home/./tempvsty/peekmysite.com/wp-content/plugins/malcare-security/protect/ipstore/ | 
| Upload File : | 
<?php
if (!defined('ABSPATH') && !defined('MCDATAPATH')) exit;
if (!class_exists('MCProtectIpstoreDB_V602')) :
class MCProtectIpstoreDB_V602 {
		const TABLE_NAME = 'ip_store';
		const CATEGORY_FW = 3;
		const CATEGORY_LP = 4;
		#XNOTE: check this. 
		public static function blacklistedTypes() {
			return MCProtectRequest_V602::blacklistedCategories();
		}
		public static function whitelistedTypes() {
			return MCProtectRequest_V602::whitelistedCategories();
		}
		public static function uninstall() {
			MCProtect_V602::$db->dropBVTable(MCProtectIpstoreDB_V602::TABLE_NAME);
		}
		public function isLPIPBlacklisted($ip) {
			return $this->checkIPPresent($ip, self::blacklistedTypes(), MCProtectIpstoreDB_V602::CATEGORY_LP);
		}
		public function isLPIPWhitelisted($ip) {
			return $this->checkIPPresent($ip, self::whitelistedTypes(), MCProtectIpstoreDB_V602::CATEGORY_LP);
		}
		public function getTypeIfBlacklistedIP($ip) {
			return $this->getIPType($ip, self::blacklistedTypes(), MCProtectIpstoreDB_V602::CATEGORY_FW);
		}
		public function isFWIPBlacklisted($ip) {
			return $this->checkIPPresent($ip, self::blacklistedTypes(), MCProtectIpstoreDB_V602::CATEGORY_FW);
		}
		public function isFWIPWhitelisted($ip) {
			return $this->checkIPPresent($ip, self::whitelistedTypes(), MCProtectIpstoreDB_V602::CATEGORY_FW);
		}
		private function checkIPPresent($ip, $types, $category) {
			$ip_category = $this->getIPType($ip, $types, $category);
			return isset($ip_category) ? true : false;
		}
		#XNOTE: getIPCategory or getIPType?
		private function getIPType($ip, $types, $category) {
			$table = MCProtect_V602::$db->getBVTable(MCProtectIpstoreDB_V602::TABLE_NAME);
			if (MCProtect_V602::$db->isTablePresent($table)) {
				$binIP = MCProtectUtils_V602::bvInetPton($ip);
				$is_v6 = MCProtectUtils_V602::isIPv6($ip);
				if ($binIP !== false) {
					$query_str = "SELECT * FROM $table WHERE %s >= `start_ip_range` && %s <= `end_ip_range` && ";
					if ($category == MCProtectIpstoreDB_V602::CATEGORY_FW) {
						$query_str .= "`is_fw` = true";
					} else {
						$query_str .= "`is_lp` = true";
					}
					$query_str .= " && `type` in (" . implode(',', $types) . ") && `is_v6` = %d LIMIT 1;";
					$query = MCProtect_V602::$db->prepare($query_str, array($binIP, $binIP, $is_v6));
					return MCProtect_V602::$db->getVar($query, 5);
				}
			}
		}
	}
endif;