PageSourceSearch

https://070xd.com/

html 070xd.com collected 2026-10-09 04:32:27 UTC 23,188 bytes, 696 lines download raw bytes

1<!DOCTYPE html>
2<html lang="zh-CN">
3
4<head>
5    <meta charset="utf-8">
6    <meta name="apple-touch-fullscreen" content="YES" />
7    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
8    <meta name="apple-mobile-web-app-capable" content="yes" />
9    <meta name="format-detection" content="telephone=no" />
10    <meta http-equiv="X-UA-Compatible" content="IE=edge">
11    <meta http-equiv="Cache-Control" content="no-siteapp">
12    <meta name="renderer" content="webkit">
13    
13<script type="text/javascript" src="/js/jquery-2.1.0.min.js"></script>
13
14    
14<script type="text/javascript" src="/js/jm.js"></script>
14
15    
15<script type="text/javascript" src="/js/qrcode.min.js"></script>
15
16    <title>91JQ就要激情 - 防屏蔽地址發布頁 請加入收藏夾</title>
17    <style type="text/css">
18        * {
19            margin: 0;
20            padding: 0;
21            box-sizing: border-box;
22        }
23
24        body {
25            background: #fafafa;
26            font-size: 18px;
27            line-height: 1.5;
28            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, "Helvetica Neue", sans-serif;
29            color: #333;
30        }
31
32        a {
33            color: #FF6600;
34            text-decoration: none;
35            transition: opacity 0.3s;
36        }
37
38        a:hover,
39        a:focus {
40            opacity: 0.8;
41        }
42
43        .container {
44            max-width: 960px;
45            margin: 0 auto;
46            padding: 0 15px;
47        }
48
49        .header {
50            margin: 20px 0 15px;
51            text-align: center;
52        }
53
54        .header h1 {
55            font-size: 26px;
56            font-weight: bold;
57            color: #333;
58            margin: 0;
59        }
60
61        .info {
62            background: #fff;
63            border-radius: 8px;
64            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
65            padding: 15px;
66            margin-bottom: 15px;
67        }
68
69        .notice-box {
70            margin-bottom: 15px;
71        }
72
73        .notice-item {
74            margin-bottom: 10px;
75            line-height: 1.6;
76        }
77
78        .text-red {
79            color: #FF0000;
80            font-weight: bold;
81        }
82
83        .text-blue {
84            color: #0066cc;
85        }
86
87        .text-green {
88            color: #009900;
89        }
90
91        .text-orange {
92            color: #FF6600;
93        }
94
95        .main-url {
96            font-size: 20px;
97            word-break: break-all;
98        }
99
100        .backup-link {
101            display: inline-block;
102            /* background: #fff3e6; */
103            padding: 8px 12px;
104            border-radius: 6px;
105            margin: 8px 0;
106            border-left: 4px solid #FF6600;
107        }
108
109        .backup-link a {
110            font-weight: bold;
111            font-size: 18px;
112            display: block;
113            text-align: center;
114        }
115
116        .btn-enter {
117            display: block;
118            background: #0066cc;
119            color: #fff;
120            font-size: 22px;
121            font-weight: bold;
122            padding: 12px 25px;
123            border-radius: 8px;
124            text-align: center;
125            margin: 15px auto;
126            max-width: 500px;
127            transition: background 0.3s;
128        }
129
130        .btn-enter:hover {
131            background: #0052a3;
132            color: #fff;
133            opacity: 1;
134        }
135
136        .qrcode-wrapper {
137            text-align: center;
138            margin: 15px 0 10px;
139        }
140
141        #qrcode,
142        #new-qrcode {
143            display: flex;
144            justify-content: center;
145            align-items: center;
146            margin: 0 auto;
147        }
148
149        #new-qrcode canvas,
150        #new-qrcode img {
151            max-width: 45%;
152            height: auto;
153        }
154
155        #tip {
156            text-align: center;
157            color: #666;
158            margin-top: 10px;
159            font-size: 15px;
160        }
161
162        .guide-text {
163            font-size: 15px;
164            color: #666;
165            line-height: 1.7;
166        }
167
168        .divider {
169            height: 1px;
170            background: #eee;
171            margin: 12px 0;
172        }
173
174        /* 移动端优化 */
175        @media (max-width: 768px) {
176            body {
177                font-size: 15px;
178            }
179
180            .header {
181                margin: 15px 0 10px;
182            }
183
184            .header h1 {
185                font-size: 18px;
186                line-height: 1.4;
187            }
188
189            .info {
190                padding: 12px;
191                border-radius: 6px;
192            }
193
194            .notice-item {
195                margin-bottom: 8px;
196            }
197
198            .main-url {
199                font-size: 16px;
200            }
201
202            .btn-enter {
203                font-size: 18px;
204                padding: 10px 18px;
205                margin: 12px auto;
206            }
207
208            .backup-link {
209                padding: 6px 10px;
210                font-size: 14px;
211                margin: 6px 0;
212            }
213
214            .backup-link a {
215                font-size: 15px;
216                display: block;
217                text-align: center;
218            }
219
220            .divider {
221                margin: 10px 0;
222            }
223
224            .qrcode-wrapper {
225                margin: 12px 0 8px;
226            }
227
228            #new-qrcode canvas,
229            #new-qrcode img {
230                width: 240px !important;
231                height: auto;
232            }
233
234            .guide-text {
235                font-size: 14px;
236            }
237
238            #tip {
239                font-size: 13px;
240                margin-top: 8px;
241            }
242        }
243
244        @media (max-width: 480px) {
245            body {
246                font-size: 14px;
247            }
248
249            .header h1 {
250                font-size: 16px;
251            }
252
253            .main-url {
254                font-size: 15px;
255            }
256
257            .btn-enter {
258                font-size: 16px;
259            }
260
261            #new-qrcode canvas,
262            #new-qrcode img {
263                width: 175px !important;
264            }
265        }
266    </style>
267    
267<script type="text/javascript" src="/js/tj_mtm.js"></script>
267
268</head>
269
270<body>
271    
271<script type="text/javascript">
272        function jc_zi_ym(ym) {
273            const dmRegex = /^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n?]+)(?::\d+)?$/;
274            const match = ym.match(dmRegex);
275            if (match && match[1]) {
276                const parts = match[1].split('.');
277                return parts.length > 2;
278            }
279            return false;
280        }
281
282        function cl_zi_ym(sub_ym) {
283
284            var ua = navigator.userAgent.toLowerCase();
285
286            // generate random num
287            function generateRandomDigits(length) {
288                var result = '';
289                for (var i = 0; i < length; i++) {
290                    var randomDigit;
291                    do {
292                        randomDigit = Math.floor(Math.random() * 10);
293                    } while (randomDigit === 4);
294                    result += randomDigit;
295                }
296                return result;
297            }
298
299            // detect environment (priority detection)
300            function detectBrowser() {
301
302                // =========================
303                // inside browser
304                // =========================
305
306                // 1. wx
307                if (/micromessenger\/[\d.]+/.test(ua)) {
308                    return { prefix: 'wx', length: 6 };
309                }
310
311                // 2. enterprise wx
312                if (/wxwork\/[\d.]+/.test(ua)) {
313                    return { prefix: 'ww', length: 6 };
314                }
315
316                // 3. alipay
317                if (/alipayclient\/[\d.]+/.test(ua)) {
318                    return { prefix: 'al', length: 6 };
319                }
320
321                // 4. douyin
322                if (/toutiao|bytedancewebview/.test(ua)) {
323                    return { prefix: 'dy', length: 6 };
324                }
325
326                // =========================
327                // pop browser
328                // =========================
329
330                // 5. UC
331                if (/ucbrowser\/[\d.]+|ucweb\/[\d.]+/.test(ua)) {
332                    return { prefix: 'u', length: 6 };
333                }
334
335                // 6. sg
336                if (/sogoumse\/[\d.]+|metasr|sogoumobilebrowser/.test(ua)) {
337                    return { prefix: 'sg', length: 6 };
338                }
339
340                // 7. QQ
341                if (/mqqbrowser\/[\d.]+|qqbrowser\/[\d.]+/.test(ua)) {
342                    return { prefix: 'q', length: 6 };
343                }
344
345                // 8. quark
346                if (/quark\/[\d.]+/.test(ua)) {
347                    return { prefix: 'qk', length: 6 };
348                }
349
350                // 9. 360
351                if (/360se|360ee|qhbrowser/.test(ua)) {
352                    return { prefix: 'qh', length: 6 };
353                }
354
355                // 10. mi
356                if (/miuibrowser\/[\d.]+/.test(ua)) {
357                    return { prefix: 'mi', length: 6 };
358                }
359
360                // 11. huawei
361                if (/huaweibrowser\/[\d.]+/.test(ua)) {
362                    return { prefix: 'hw', length: 6 };
363                }
364
365                // 12. OPPO
366                if (/oppobrowser\/[\d.]+/.test(ua)) {
367                    return { prefix: 'op', length: 6 };
368                }
369
370                // 13. honor
371                if (/honorbrowser\/[\d.]+/.test(ua)) {
372                    return { prefix: 'hn', length: 6 };
373                }
374
375                // 14. baidu
376                if (/baidubrowser\/[\d.]+|baiduboxapp\/[\d.]+|bdbrowser/.test(ua)) {
377                    return { prefix: 'bd', length: 6 };
378                }
379
380                // 15. Samsung
381                if (/samsungbrowser\/[\d.]+/.test(ua)) {
382                    return { prefix: 'ss', length: 6 };
383                }
384
385                // =========================
386                // international
387                // =========================
388
389                // 16. Edge
390                if (/edg\/[\d.]+|edga\/[\d.]+|edgios\/[\d.]+/.test(ua)) {
391                    return { prefix: 'eg', length: 6 };
392                }
393
394                // 17. Firefox
395                if (/firefox\/[\d.]+/.test(ua)) {
396                    return { prefix: 'ff', length: 6 };
397                }
398
399                // 18. Opera
400                if (/opr\/[\d.]+/.test(ua)) {
401                    return { prefix: 'ox', length: 6 };
402                }
403
404                // 19. vivo
405                if (/vivobrowser\/[\d.]+/.test(ua) || (/android/.test(ua) && /vivo/.test(ua))) {
406                    return { prefix: 'v', length: 6 };
407                }
408
409                // 20. Chrome last
410                if (
411                    (/chrome\/[\d.]+/.test(ua) || /crios\/[\d.]+/.test(ua)) &&
412                    !/edg[a-z]*\/[\d.]+/.test(ua) &&
413                    !/opr\/[\d.]+/.test(ua)
414                ) {
415                    return { prefix: 'ch', length: 6 };
416                }
417
418                // 21. Safari last
419                if (
420                    /version\/[\d.]+.*safari\/[\d.]+/.test(ua) &&
421                    !/chrome\/[\d.]+/.test(ua) &&
422                    !/crios\/[\d.]+/.test(ua)
423                ) {
424                    return { prefix: 'sf', length: 6 };
425                }
426
427                return { prefix: 'qt', length: 6 };
428            }
429
430            var browserInfo = detectBrowser();
431            var prefix_x = browserInfo.prefix + generateRandomDigits(browserInfo.length);
432
433            // process dm
434            const dmPart = sub_ym.replace(/^[^.]+\.?/, '');
435            const match = dmPart.match(/^(.*?)(:\d+)?$/);
436            const result = match ? match[1] + (match[2] || '') : '';
437
438            return prefix_x + "." + result;
439        }
440
441        function hq_yj_ym(ym) {
442            var dm_regex = /^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+)/;
443            var match = ym.match(dm_regex);
444            if (match && match[1]) {
445                var full_ym = match[1];
446                var parts = full_ym.split('.');
447
448                if (parts.length >= 2) {
449                    var top_ym = parts[parts.length - 2] + '.' + parts[parts.length - 1];
450                    finalResult = top_ym;
451                } else {
452                    finalResult = full_ym;
453                }
454            } else {
455                finalResult = ym;
456            }
457            return finalResult;
458        }
459    </script>
459
460    
460<script type="text/javascript">
461        var host = window.location.host.toLowerCase();
462        AJfwiwomtx.get('/get_dm.php', function (dm_url) {
463            var target_dm = jjmm(dm_url, encodeURIComponent(dm_url));
464            if (jc_zi_ym(target_dm)) {
465                target_dm = cl_zi_ym(target_dm);
466            }
467            host = target_dm;
468            latest_notice(); //230611
469
470            new QRCode(document.getElementById('qrcode'), {
471                text: "https://" + host,
472                width: 300,
473                height: 300,
474                colorDark: '#2e343F',
475                colorLight: "#ffffff",
476                correctLevel: QRCode.CorrectLevel.H
477            });
478
479            createNewQrcode(document.querySelector('#qrcode canvas'));
480
481            function createNewQrcode(originalQrcode) {
482                var newQrcodeWrap = document.querySelector('#new-qrcode');
483                var resolutionMultiple = 2; // 分辨率倍数
484                var borderSize = 10 * resolutionMultiple; // 边框留白
485                var canvasWidth = 300 * resolutionMultiple; // 图片宽度
486                var logoSize = 80 * resolutionMultiple; // logo直径
487                var logoBorderSize = 4 * resolutionMultiple; // logo描边
488                var logoUrl = './frontpage_qrcode_inner_img.png';
489                var text = '回家的码:' + host; // 底部文字
490                var fontSize = 30 * resolutionMultiple; // 文字大小
491
492                var canvasHeight = canvasWidth + fontSize;
493                var canvas = document.createElement('canvas');
494                if (!canvas.getContext) return;
495                canvas.width = canvasWidth;
496                canvas.height = canvasHeight;
497
498                var ctx = canvas.getContext('2d');
499                ctx.fillStyle = 'rgb(255,255,255)'; // 调色(纯白)
500                ctx.fillRect(0, 0, canvasWidth, canvasHeight); // 绘制背景
501
502                var qrcodeSize = canvasWidth - borderSize * 2;
503                ctx.drawImage(
504                    originalQrcode,
505                    borderSize,
506                    borderSize,
507                    qrcodeSize,
508                    qrcodeSize
509                ); // 填充二维码
510
511                var logoCenterX = borderSize + qrcodeSize / 2;
512                var logoCenterY = logoCenterX;
513                ctx.arc(
514                    logoCenterX,
515                    logoCenterY,
516                    logoSize / 2 + logoBorderSize,
517                    0,
518                    Math.PI * 2,
519                    false
520                ); // 绘制logo圆形底图
521                ctx.fill(); // 填充背景
522
523                var logoX = (qrcodeSize - logoSize) / 2 + borderSize;
524                var logoY = logoX;
525                var logo = new Image();
526                logo.setAttribute('crossOrigin', 'anonymous'); // logo跨域许可
527                logo.onload = function () {
528                    ctx.beginPath();
529                    ctx.arc(
530                        logoCenterX,
531                        logoCenterY,
532                        logoSize / 2,
533                        0,
534                        Math.PI * 2,
535                        false
536                    );
537                    ctx.fill();
538                    ctx.clip(); // 裁剪logo成圆形
539                    ctx.drawImage(logo, logoX, logoY, logoSize, logoSize); // 填充logo
540                    createImage();
541                };
542                logo.src = logoUrl; // 设置logo源地址
543
544                ctx.fillStyle = 'rgb(0,0,0)'; // 调色(纯黑)
545                ctx.font = fontSize + 'px Arial'; // 文本大小, 字体
546                ctx.textAlign = 'center';
547                ctx.fillText(
548                    text,
549                    canvasWidth / 2,
550                    qrcodeSize + borderSize + fontSize,
551                    qrcodeSize
552                ); // 绘制文本
553
554                canvas.style.display = 'none';
555                newQrcodeWrap.appendChild(canvas);
556
557                function createImage() {
558                    // logo加载完成后再生成img,否则logo部分空白
559                    var newQrcodeImg = new Image();
560                    newQrcodeImg.src = canvas.toDataURL('image/png');
561                    newQrcodeWrap.appendChild(newQrcodeImg);
562                }
563            }
564
565            //invisiable original img
566            var elmt = document.getElementById('qrcode');
567            elmt.style.display = 'none';
568
569            var p = document.getElementById('tip');
570            p.innerText = "点击二维码图片/截图保存最新地址";
571        })
572    </script>
572
573
574    
574<script type="text/javascript">
575        function updateDownloadLink() {
576            //找到canvas标签
577            var cvs = document.getElementById('new-qrcode').getElementsByTagName('canvas');
578            if (cvs.length === 0) {
579                console.error("Canvas not found! Retrying...");
580                setTimeout(updateDownloadLink, 500); // 继续尝试
581                return;
582            }
583            //创建一个a标签节点
584            var a = document.getElementById('downlink');
585            //设置a标签的href属性(将canvas变成png图片)
586            a.href = cvs[0].toDataURL('image/png').replace('image/png', 'image/octet-stream');
587            //设置下载文件的名字
588            a.download = "521大香蕉二维码" + host + ".png";
589        }
590
591        window.onload = function () {
592            setTimeout(updateDownloadLink, 500); // 延迟执行
593        };
594    </script>
594
595
596    
596<script>
597        var timer_num = 15;
598        timeClock = setInterval(function () {
599            timer_num--;
600            $('.clock').html(timer_num);
601            // console.log('target=' + getdz);
602            console.log(timer_num);
603            document.getElementById('counter').innerHTML = timer_num;
604            var jump_url = "https://" + host + '/index.html';
605            if (timer_num <= 0) {
606                clearInterval(timeClock);
607                window.location.href = jump_url;
608            }
609        }, 1000)
610    </script>
610
611
612    <div class="container" id="container">
613        <div class="header">
614            <h1>提示:本站不定时更换网址,请及时收藏最新网址!</h1>
615        </div>
616
617        <div class="info">
618            <div class="notice-box">
619                <div id="insertionPoint"></div>
620                
620<script type="text/javascript">
621                    function latest_notice() {
622                        var hostWithoutPort = host.split(':')[0];
623                        var insertionPoint = document.getElementById('insertionPoint');
624                        
625                        var content = '<div class="notice-item">';
626                        content += '<span class="text-red">📢 公告:本站不定时更换网址,请收藏本站最新地址:&nbsp</span><br>';
627                        content += '<span class="main-url text-red">https://' + host + '</span>';
628                        content += '</div>';
629                        
630                        content += '<div class="notice-item">';
631                        content += '<span class="text-blue">⏱️ <span id="counter">15</span> 秒后将自动跳转到新页面</span>';
632                        content += '</div>';
633                        
634                        content += '<div class="divider"></div>';
635                        
636                        content += '<div class="notice-item">';
637                        content += '<strong>请正确收藏本站地址:</strong><br>';
638                        content += '<span class="main-url text-red">https://' + host + '</span>';
639                        content += '</div>';
640                        
641                        content += '<div class="backup-link">';
642                        content += '<span class="text-green">💡 部分网络限制端口访问,如果打不开</span><br>';
643                        content += '<a href="https://' + hostWithoutPort + '/index.html">请点此进入</a>';
644                        content += '</div>';
645                        
646                        content += '<div class="divider"></div>';
647                        
648                        content += '<div class="notice-item guide-text">';
649                        content += '<strong>收藏方法:</strong><br>';
650                        content += '💻 <strong>电脑版:</strong>按 <span class="text-red">Ctrl+D</span> 快捷键收藏<br>';
651                        content += '📱 <strong>安卓手机:</strong>浏览器菜单 → <span class="text-red">添加书签</span><br>';
652                        content += '🍎 <strong>苹果手机:</strong>浏览器菜单 → <span class="text-red">添加到个人收藏</span>';
653                        content += '</div>';
654                        
655                        content += '<div class="divider"></div>';
656                        
657                        content += '<div class="notice-item">';
658                        content += '<span style="color:#666;">ℹ️ 你访问的地址已无效,请记住本站最新地址以便访问</span><br>';
659                        content += '<span class="main-url text-red">https://' + host + '</span>';
660                        content += '</div>';
661                        
662                        insertionPoint.innerHTML = content;
663                    }
664                </script>
664
665            </div>
666
667            
667<script type="text/javascript">
668                function checkurl() {
669                    var strU = "https://" + host;
670                    window.location.href = strU + '/index.html';
671                }
672            </script>
672
673            
674            <a href="javascript:void(0);" onclick="checkurl();" class="btn-enter">
675                如果浏览器没有自动跳转 - 点击这里进入本站
676            </a>
677
678            <div class="qrcode-wrapper">
679                <div id="qrcode"></div>
680                <a id="downlink">
681                    <div id="new-qrcode"></div>
682                </a>
683                <p id="tip"></p>
684            </div>
685        </div>
686    </div>
687
688    <div style="display:none">
689        
689<script type="text/javascript" language="javascript" src="/js/tj_frontpage.js"></script>
689
690        
690<script type="text/javascript" language="javascript" src="/js/tj.js"></script>
690
691    </div>
692
693<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"89cf05a71aae4a3bbf846b1d3d7ee74d","r":1,"spa":2}' crossorigin="anonymous"></script>
693
694</body>
695
696</html>

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.