Server IP : 172.67.216.182 / Your IP : 108.162.227.107 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/wwwroot/coircraft.com/wp-content/plugins/wordfence/lib/ |
Upload File : |
<?php require_once __DIR__ . '/../vendor/autoload.php'; require_once __DIR__ . '/wfIpLocation.php'; use Wordfence\MmdbReader\Database; use Wordfence\MmdbReader\Exception\MmdbThrowable; class wfIpLocator { const SOURCE_BUNDLED = 0; const SOURCE_WFLOGS = 1; const DATABASE_FILE_NAME = 'GeoLite2-Country.mmdb'; private static $instances = array(); private $database; private $preferred; private function __construct($database, $preferred) { $this->database = $database; $this->preferred = $preferred; } public function isPreferred() { return $this->preferred; } private static function logError($message) { if (class_exists('wfUtils')) wfUtils::check_and_log_last_error('ip_locator', 'IP Location Error:', $message, 0); } public function locate($ip) { if ($this->database !== null) { try { $record = $this->database->search($ip); if ($record !== null) return new wfIpLocation($record); } catch (MmdbThrowable $t) { self::logError('Failed to locate IP address: ' . $t->getMessage()); } } return null; } public function getCountryCode($ip, $default = '') { $record = $this->locate($ip); if ($record !== null) return $record->getCountryCode(); return $default; } public function getDatabaseVersion() { if ($this->database !== null) { try { return $this->database->getMetadata()->getBuildEpoch(); } catch (MmdbThrowable $t) { self::logError('Failed to retrieve database version: ' . $t->getMessage()); } } return null; } private static function getDatabaseDirectory($source) { switch ($source) { case self::SOURCE_BUNDLED: return WFWAF_LOG_PATH; case self::SOURCE_BUNDLED: default: return __DIR__; } } private static function initializeDatabase($preferredSource, &$isPreferred) { $sources = array(); if ($preferredSource !== self::SOURCE_BUNDLED) $sources[] = $preferredSource; $sources[] = self::SOURCE_BUNDLED; $isPreferred = true; foreach ($sources as $source) { $directory = self::getDatabaseDirectory($source); try { $path = $directory . '/' . self::DATABASE_FILE_NAME; if (file_exists($path)) //Preemptive check to prevent warnings return Database::open($path); } catch (MmdbThrowable $t) { self::logError('Failed to initialize IP location database: ' . $t->getMessage()); } $preferred = false; } return null; } public static function getInstance($preferredSource = null) { if ($preferredSource === null) $preferredSource = self::SOURCE_WFLOGS; if (!array_key_exists($preferredSource, self::$instances)) { $database = self::initializeDatabase($preferredSource, $isPreferred); self::$instances[$preferredSource] = new wfIpLocator($database, $isPreferred); } return self::$instances[$preferredSource]; } }