PATH:
var
/
www
/
clients
/
client1
/
web1
/
web
/
wp-content
/
plugins
/
wordfence
/
lib
<?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; 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 . '/' . wfIpLocation::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]; } }
[-] menu_support.php
[edit]
[-] wfBinaryList.php
[edit]
[-] sysinfo.php
[edit]
[-] menu_scanner.php
[edit]
[-] wfViewResult.php
[edit]
[-] wfScanMonitor.php
[edit]
[-] wfScanEngine.php
[edit]
[-] WFLSPHP52Compatability.php
[edit]
[-] .htaccess
[edit]
[-] wfSupportController.php
[edit]
[-] wfConfig.php
[edit]
[-] menu_firewall_waf.php
[edit]
[-] menu_dashboard_options.php
[edit]
[-] wfScan.php
[edit]
[-] wfUtils.php
[edit]
[-] wfDashboard.php
[edit]
[-] wordfenceScanner.php
[edit]
[+]
Diff
[-] menu_tools_whois.php
[edit]
[-] wfIpLocator.php
[edit]
[-] wfUnlockMsg.php
[edit]
[-] menu_wordfence_central.php
[edit]
[-] wfDirectoryIterator.php
[edit]
[-] wfHelperString.php
[edit]
[-] wfDB.php
[edit]
[-] live_activity.php
[edit]
[-] wfCrawl.php
[edit]
[-] email_genericAlert.php
[edit]
[-] IPTrafList.php
[edit]
[-] wfBrowscap.php
[edit]
[-] geoip.mmdb
[edit]
[-] wfAlerts.php
[edit]
[-] wfWebsite.php
[edit]
[-] noc1.key
[edit]
[-] wfCurlInterceptor.php
[edit]
[-] wordfenceHash.php
[edit]
[-] wfDateLocalization.php
[edit]
[-] menu_tools_importExport.php
[edit]
[-] wfScanEntrypoint.php
[edit]
[-] wfView.php
[edit]
[-] menu_tools.php
[edit]
[-] wfJWT.php
[edit]
[-] wfCache.php
[edit]
[-] menu_tools_livetraffic.php
[edit]
[-] wfCrypt.php
[edit]
[-] wfScanFile.php
[edit]
[-] wfAdminNoticeQueue.php
[edit]
[-] wfInaccessibleDirectoryException.php
[edit]
[-] wfVersionCheckController.php
[edit]
[-] wfRESTAPI.php
[edit]
[-] wfDeactivationOption.php
[edit]
[-] menu_tools_diagnostic.php
[edit]
[-] flags.php
[edit]
[-] email_newIssues.php
[edit]
[-] wfBrowscapCache.php
[edit]
[-] wfModuleController.php
[edit]
[-] wfLicense.php
[edit]
[-] wfIpLocation.php
[edit]
[-] wfCredentialsController.php
[edit]
[+]
rest-api
[-] wordfenceClass.php
[edit]
[-] wf503.php
[edit]
[+]
audit-log
[-] wfNotification.php
[edit]
[-] wfLog.php
[edit]
[-] wfActivityReport.php
[edit]
[-] wfScanFileProperties.php
[edit]
[-] wfHelperBin.php
[edit]
[-] wfAPI.php
[edit]
[-] viewFullActivityLog.php
[edit]
[-] wfLockedOut.php
[edit]
[-] wfScanPath.php
[edit]
[-] sodium_compat_fast.php
[edit]
[-] wfIssues.php
[edit]
[-] wordfenceConstants.php
[edit]
[-] menu_firewall_waf_options.php
[edit]
[-] wfI18n.php
[edit]
[-] menu_scanner_options.php
[edit]
[-] IPTraf.php
[edit]
[-] wfAuditLog.php
[edit]
[-] wfCommonPasswords.php
[edit]
[-] wfOnboardingController.php
[edit]
[-] wfInvalidPathException.php
[edit]
[-] email_unsubscribeRequest.php
[edit]
[-] wordfenceURLHoover.php
[edit]
[-] diffResult.php
[edit]
[-] menu_firewall_blocking_options.php
[edit]
[-] menu_scanner_credentials.php
[edit]
[-] wfFileUtils.php
[edit]
[-] wfPersistenceController.php
[edit]
[-] wfVersionSupport.php
[edit]
[-] Diff.php
[edit]
[+]
..
[-] wfMD5BloomFilter.php
[edit]
[-] wfUpdateCheck.php
[edit]
[-] wfDiagnostic.php
[edit]
[-] menu_install.php
[edit]
[-] wfCentralAPI.php
[edit]
[-] menu_options.php
[edit]
[-] wfSchema.php
[edit]
[-] menu_dashboard.php
[edit]
[-] compat.php
[edit]
[-] menu_firewall_blocking.php
[edit]
[-] wfIPWhitelist.php
[edit]
[-] wfBulkCountries.php
[edit]
[-] menu_tools_auditlog.php
[edit]
[-] email_unlockRequest.php
[edit]
[-] menu_firewall.php
[edit]
[-] wfScanFileListItem.php
[edit]
[-] wfImportExportController.php
[edit]
[-] menu_tools_twoFactor.php
[edit]
[+]
dashboard
[-] wfScanFileLink.php
[edit]
[-] wfStyle.php
[edit]