Help
RSS
API
Feed
Maltego
Contact
Domain > live.zyghit.cn
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2023-08-25
124.225.7.100
(
ClassC
)
2023-10-08
183.201.244.100
(
ClassC
)
2026-01-30
43.159.106.57
(
ClassC
)
Port 80
HTTP/1.1 200 OKServer: TengineContent-Type: text/html; charsetUTF-8Vary: Accept-EncodingX-Powered-By: ExpressAccept-Ranges: bytesETag: W/6056-19bc24c1701Set-Cookie: server_name_session7b08caded9b6a2c196e371d201786a51; Max-Age86400; httponly; path/Last-Modified: Thu, 15 Jan 2026 15:35:25 GMTCache-Control: public, no-cache, max-age0Transfer-Encoding: chunkedConnection: keep-aliveDate: Fri, 30 Jan 2026 13:59:21 GMTEO-LOG-UUID: 11068284256338373031EO-Cache-Status: MISS !doctype html>html>head> meta charsetutf-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> meta nameKeywords content至远光辉信息技术,至远光辉,ZGIT,ZGIT Network,RCNBBS,云启之域,OpenFrp,工作室,媒体,直播,SRS,云默安,直播平台/> meta nameDescription content至远光辉信息技术自建IPv6/IPv4混合-SRS直播平台> title>至远光辉信息技术直播平台 Next | ZGIT/title> script src//cdn.jsdmirror.cn/npm/flv.js@1.6.2/dist/flv.min.js>/script> script src//cdn.jsdmirror.cn/npm/hls.js@1.6.13/dist/hls.min.js>/script> script src//cdn.jsdmirror.cn/npm/dplayer@1.27.1/dist/DPlayer.min.js>/script> link relicon typeimage/x-icon href//i.zyghit.cn/img/zgit.ico> script src//fastly.jsdelivr.net/npm/jquery@3.6.3/dist/jquery.min.js>/script> link relstylesheet href/main.css/> link relstylesheet href//i.zyghit.cn/mdui/css/mdui.min.css/> script src//i.zyghit.cn/mdui/js/mdui.min.js>/script>/head>body classmdui-theme-primary-blue-800 mdui-appbar-with-toolbar mdui-loaded>header class mdui-appbar mdui-appbar-fixed> div classmdui-toolbar mdui-color-blue-800 mdui-shadow-6> a classmdui-typo-headline> ZGIT Live Streaming Center Next/a> div classmdui-toolbar-spacer>/div> p>span classzaixianhzongxin>ZGIT 在线直播中心 | /span>在线人数: span idonline-users>正在连接服务器.../span> /p> /div>/header>div classmdui-container-fluid mdui-m-t-2 idmain> div classmdui-row mdui-m-a-2> div classmdui-col-sm-12 mdui-col-md-9 video-section> div classmdui-m-t-2 iddplayer-wrap> div iddplayer crossoriginanonymous>/div> /div> div classmdui-typo mdui-m-t-2 rooms-main> a href//beian.miit.gov.cn target_blank classmdui-text-color-blue-700 styletext-decoration:none;>津ICP备2025038348号/a> | ZGIT Network Experimental IaaS | a href/room>是直播服务用户?点击这里/a>br/>small>* 这不是一个公共媒体服务平台,也不是一个文化娱乐平台,所有的播送内容均是内部审核播送。/small> /div> /div> div classmdui-col-sm-12 mdui-col-md-3 chat-section> div classmdui-typo stylemargin-bottom: 10px;> h6>i classmdui-icon material-icons mdui->textsms/i> 聊天室/h6> /div> div idpc_userinfo>/div> div classmdui-card> div classmdui-card-primary>消息/div> div classmdui-card-content> div styleheight:380px; overflow-y:auto;margin-top:-20px; classmdui-shadow-0 idcontent> ul classmdui-list> div idoutput stylemargin-bottom: -20px;margin-left:-10px;>/div> /ul> /div> div classmdui-textfield> ul classmdui-list> li classmdui-list-item item-body stylemargin-left:-10px idsystem_info>| 你好!欢迎来到 ZGIT 直播平台!/li> /ul> label classmdui-textfield-label keyInput>/label> textarea classmdui-textfield-input placeholder在这里输入 idmsg rows2 maxlength1000 onkeyupEnterKey(event)>/textarea> /div> button onclicksend() idsend classmdui-btn mdui-shadow-3 mdui-ripple> div classlang keySend styledisplay:inline>/div> i classmdui-icon material-icons>/i> /button> /div> /div> div idmobile_userinfo stylemargin-top: 8px;>/div> div classmdui-typo mdui-m-t-2 rooms-main-m> a href//beian.miit.gov.cn target_blank classmdui-text-color-blue-700 styletext-decoration:none;>津ICP备2025038348号/a> | ZGIT Network Experimental IaaS | a href/room>是直播服务用户?点击这里/a>br/>small>* 这不是一个公共媒体服务平台,也不是一个文化娱乐平台,所有的播送内容均是内部审核播送。/small> /div> div classmdui-dialog iddialog> div classmdui-dialog-title lang keyWarning iddialog-title>/div> div classmdui-dialog-content iddialog-info>/div> div classmdui-dialog-actions> button classmdui-btn mdui-ripple lang keyOK iddialog-btn mdui-dialog-confirm>OK/button> /div> /div> /div> /div>/div>script> var $ mdui.$; mdui.snackbar({ message: 立即登录聊天室开始聊天吧!, position: right-top, }); // 用户信息卡片:matchMedia 断点变化时“搬运同一个节点” const userInfoMq window.matchMedia((min-width: 1024px));let userInfoCard null;function ensureUserInfoCard() { if (userInfoCard) return userInfoCard; const card document.createElement(div); card.classList.add(mdui-card); card.style.marginBottom 10px; const cardHeader document.createElement(div); cardHeader.classList.add(mdui-card-header); card.appendChild(cardHeader); const avatarDiv document.createElement(div); avatarDiv.id avatar; cardHeader.appendChild(avatarDiv); const button document.createElement(button); button.classList.add(mdui-btn, mdui-card-header-avatar, mdui-btn-icon); button.setAttribute(mdui-tooltip, {content: 登录, position: top}); button.id login; button.addEventListener(click, connect); avatarDiv.appendChild(button); const icon document.createElement(i); icon.classList.add(mdui-icon, material-icons); icon.textContent account_circle; button.appendChild(icon); const cardTitle document.createElement(div); cardTitle.classList.add(mdui-card-header-title); cardTitle.id username; cardTitle.textContent ; cardHeader.appendChild(cardTitle); const cardSubtitle document.createElement(div); cardSubtitle.classList.add(mdui-card-header-subtitle); cardSubtitle.id chatplz; cardSubtitle.textContent 请先登录(点击左侧图标来登录); cardHeader.appendChild(cardSubtitle); userInfoCard card; return userInfoCard;}function placeUserInfoCard() { const pcUserInfo document.getElementById(pc_userinfo); const mobileUserInfo document.getElementById(mobile_userinfo); if (!pcUserInfo || !mobileUserInfo) return; const card ensureUserInfoCard(); const target userInfoMq.matches ? pcUserInfo : mobileUserInfo; // 只在目标容器变化时搬运,避免抖动/重复 mutation if (card.parentNode ! target) { target.appendChild(card); mdui.mutation(); }}// 初始放置 + 断点变化时搬运window.addEventListener(DOMContentLoaded, () > { placeUserInfoCard(); fetchUsername(); // 仍然只请求一次});userInfoMq.addEventListener(change, () > { placeUserInfoCard();}); use strict let username Guest; // const engine new p2pml.hlsjs.Engine(); async function fetchUsername() { // 延迟 1 秒,模拟等待生成的 DOM 节点 setTimeout(async () > { const usernameElement document.getElementById(username); const chatplzElement document.getElementById(chatplz); const avatarElement document.getElementById(avatar); // 确保元素存在 if (!usernameElement || !chatplzElement || !avatarElement) { console.error(无法找到目标元素); return; } await fetch(/api/user) .then(response > { if (response.ok) { return response.json(); } else { throw new Error(Unauthorized); } }) .then(response > { username response.data.username; usernameElement.textContent ` ${username}`; chatplzElement.textContent 开始聊天吧 (点击头像退出登录); document.getElementById(send).disabled false; document.getElementById(msg).disabled false; avatarElement.innerHTML `button classmdui-btn mdui-card-header-avatar mdui-btn-icon mdui-tooltip{content: 退出登录, position: top} onclickdisconnect()> img classmdui-card-header-avatar src//api.zyghit.cn/avatar/?email${response.data.email}&s256/> /button>`; }) .catch(err > { console.error(err); usernameElement.textContent 未登录; chatplzElement.textContent 请先登录(点击左侧图标来登录); document.getElementById(send).disabled true; document.getElementById(msg).disabled true; }); }, 10); // 延迟 1 秒以确保 DOM 已经生成} const DP_QUALITIES { name:原画 (EO), url:https://liveeocdn.zyghit.cn/live/livestream.m3u8, type: hls, }, { name:原画 (ESA), url:https://livecdn.zyghit.cn/live/livestream.m3u8, type: hls, }, { name: 原画 (线路1), url: https://livezs.zyghit.cn/live/livestream.m3u8, type: hls, }, { name: 流畅 (线路1), url: https://livezs.zyghit.cn/live/livestream-trans.m3u8, type: hls, }, { name: 原画 (FLV), url: https://livezs.zyghit.cn/live/livestream.flv, type: flv, }, { name: 原画 (线路2), url: https://zz.zyghit.cn:444/live/livestream.m3u8, type: hls, } ; let dp null; let lastQualityIndex 0; let switching false; // 检测是否为 iOS 设备 function isIOS() { return /iPad|iPhone|iPod/.test(navigator.userAgent) || (navigator.platform MacIntel && navigator.maxTouchPoints > 1); } function resetPlayerHost() { const wrap document.getElementById(dplayer-wrap); if (!wrap) return null; // 每次重建都替换掉内层节点,避免旧实例的异步回调误伤新 DOM const old document.getElementById(dplayer); const fresh document.createElement(div); fresh.id dplayer; fresh.setAttribute(crossorigin, anonymous); if (old && old.parentNode wrap) { wrap.replaceChild(fresh, old); } else { // 兜底:wrap 内没有旧节点时直接插入 wrap.innerHTML ; wrap.appendChild(fresh); } return fresh; } function softDetachVideo(oldDp) { try { const v oldDp && oldDp.video; if (!v) return; // 清理可能的内联回调引用 v.oncanplay v.onloadeddata v.onerror v.onstalled v.onwaiting null; // 尽快中断旧流,减少 error 噪音与异步回调 v.removeAttribute(src); v.src ; v.load(); } catch (_) {} } function buildDPlayer(qualityIndex) { lastQualityIndex typeof qualityIndex number ? qualityIndex : 0; const container resetPlayerHost(); if (!container) return null; const isIOSDevice isIOS(); // iOS 配置:使用原生 HLS,添加 playsinline 属性 const videoConfig { quality: DP_QUALITIES, defaultQuality: lastQualityIndex, }; // 仅在非 iOS 设备上使用 HLS.js,iOS 使用原生 HLS 支持 if (!isIOSDevice) { videoConfig.customType { hls: function (video, player) { if (player.__hls) { try { player.__hls.destroy(); } catch (e) {} player.__hls null; } const hls new Hls({ liveDurationInfinity: true, enableWorker: true, }); hls.loadSource(video.src); hls.attachMedia(video); player.__hls hls; } }; } else { // iOS 需要添加 playsinline 属性 videoConfig.attrs { playsinline: true, webkit-playsinline: true, x5-playsinline: true }; } dp new DPlayer({ container: container, video: videoConfig, contextmenu: { text: Copyright © 2026 ZGIT, link: //www.zyghit.cn, }, , // iOS 上 autoplay 需要 muted 属性才能自动播放 autoplay: isIOSDevice ? false : true, logo: //i.zyghit.cn/img/ZGIT_MEIDA(White).png, loop: false, live: true, theme: #FADFA3, hotkey: true, preload: auto, author: username, danmaku: { api: /danmaku/, // 替换为你的后端API地址 unlimited: true, author: username, user: username, } }); // iOS 设备上,在用户交互后尝试播放 if (isIOSDevice && dp.video) { const tryPlay () > { dp.play().catch(err > { console.log(iOS autoplay prevented, user interaction required); }); }; // 监听用户交互事件 document.addEventListener(touchstart, tryPlay, { once: true }); document.addEventListener(click, tryPlay, { once: true }); } // 监听“清晰度/线路”变更:销毁并重建(稳定优先) // 不同版本事件名可能不同:quality_start / quality_end / quality_change // 这里多绑定几个,确保命中 const rebuild () > { // 读取当前 UI 选中的清晰度索引(如果取不到,就用 lastQualityIndex) // DPlayer 内部一般有 dp.qualityIndex const idx typeof dp.qualityIndex number ? dp.qualityIndex : lastQualityIndex; safeRebuild(idx); }; // 不同版本事件名差异较大:有的没有 quality_change // 为避免 Unknown event name,首页只绑定已确认存在的两个事件 dp.on(quality_start, rebuild); dp.on(quality_end, rebuild); dp.on(loadeddata, function() { console.log(DPlayer is ready); }); dp.on(error, function(e){ // 切源重建期间,旧实例/旧 video 触发 error 属于预期现象,避免刷屏 if (switching) return; console.error(DPlayer error:, e); }); return dp; } function safeDestroyPlayer() { if (!dp) return; try { // 切源时旧 video 抛 error 属于正常现象,这里先软断开降低异步回调概率 softDetachVideo(dp); // 仅在非 iOS 设备上清理 HLS.js(iOS 使用原生 HLS) if (dp.__hls && !isIOS()) { try { dp.__hls.destroy(); } catch (e) {} dp.__hls null; } dp.destroy(); } catch (e) { console.warn(destroy dp failed:, e); } dp null; } let rebuilding false; function safeRebuild(nextQualityIndex) { if (rebuilding) return; rebuilding true; switching true; // 提示:切换时短暂中断,换取稳定 mdui.snackbar({ message: `正在切换线路:${DP_QUALITIESnextQualityIndex?.name || }`, position: right-bottom, timeout: 1200, }); // 销毁后稍微延迟再建,给浏览器释放 MediaSource 的时间 safeDestroyPlayer(); setTimeout(() > { buildDPlayer(nextQualityIndex); rebuilding false; // 给新实例一些初始化时间,再恢复 error 输出 setTimeout(() > { switching false; }, 800); }, 200); } // 首次创建播放器 buildDPlayer(0); // 假设您的 DPlayer 容器元素的 id 为 dplayervar dplayer document.getElementById(dplayer);// 假设您的视频源的 url 为 videoUrlvar videoUrl https://livecdn.zyghit.cn/live/livestream.m3u8;// 使用 fetch API 发送一个 HEAD 请求fetch(videoUrl, {method: HEAD}).then(function(response) { // 如果响应状态码为 404 if (response.status 404) { // 创建一个名为 nosignal 的 div 元素 var nosignal document.createElement(div); nosignal.id nosignal; // 追加一段 HTML 代码 nosignal.innerHTML + `div classmdui-card mdui-shadow-8 mdui-m-t-2 styleheight:100%> div classmdui-card-content> div classmdui-typo> h1>i classmdui-icon material-icons>pause/i> 暂无直播 small>直播未开始/small>/h1> br /> p>您可以等会再来看看 | 错误代码:LIVE_ORIGIN_NOT_ONLINE (404)/p> div classmdui-card mdui-shadow-2 mdui-m-t-2 style> div classmdui-card-content> div classmdui-typo> h5>直播预告/h5> p>新品发布会筹备中/p> /div> /div> /div> button classmdui-m-t-2 mdui-btn mdui-btn-raised mdui-ripple mdui-color-blue-a400 onclicklocation.reload()>i classmdui-icon material-icons>replay/i> 刷新重试/button> /div> /div> /div>`; // 将 DPlayer 容器元素替换为 nosignal 元素 dplayer.parentNode.replaceChild(nosignal, dplayer); }}).catch(function(error) { // 处理可能的错误 mdui.snackbar({ message: error, position: right-bottom, }); console.error(error);}); const socket new WebSocket(wss://live.zyghit.cn/ws); socket.addEventListener(open, function (event) { console.log(WebSocket connection established); });socket.addEventListener(error, function (event) { console.error(WebSocket error:, event);}); socket.addEventListener(message, function (event) { const data JSON.parse(event.data); const messages document.getElementById(output); const messageElement document.createElement(li); messageElement.setAttribute(class, mdui-list-item mdui-ripple item-body); if (data.type updateCount) { document.getElementById(online-users).textContent `${data.count}`; } else { if (data.type system) { document.getElementById(system_info).textContent `| 系统消息: ${data.message }`; dp.danmaku.draw({ text: data.message, color: #cfcfcf, type: right }); } if (data.type error) { console.error(Connection error:, data.message); mdui.dialog({ title: WebSocket 连接错误, content: data.message, }); document.getElementById(username).textContent ` 无法验证登录, 已达到最大连接限制`; document.getElementById(chatplz).textContent 请至少退出一个设备/浏览器,当前页面聊天室与弹幕不可用; document.getElementById(send).disabled true; document.getElementById(msg).disabled true; document.getElementById(online-users).textContent `E`; } if (data.type danmaku) { messageElement.textContent `${data.data.author}: ${data.data.text}`; messages.appendChild(messageElement); messages.scrollTop messages.scrollHeight; document.getElementById(content).scrollTop document.getElementById(content).scrollHeight; dp.danmaku.draw({ text: data.data.text, color: data.data.color, type: right }); } } }); function send() { const input document.getElementById(msg); const message input.value; if (message \n || message || message\n\n || message\n\n\n) { document.getElementById(msg).value ; mdui.snackbar({ message: 无法向聊天服务器发送空信息!, position: right-bottom, }); document.getElementById(dialog-info).innerHTML 无法向聊天服务器发送空信息!; document.getElementById(dialog-title).innerHTML 警告 document.getElementById(dialog-btn).innerHTML 我已了解 inst.open(); }else{ if (message) { const danmakuMessage { time: dp.video.currentTime, // 当前视频时间 type: 0, // 弹幕类型 color: #ffffff, // 弹幕颜色 author: username, text: message }; fetch(/danmaku/v3/, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify(danmakuMessage) }).then(response > response.json()).then(data > { if(data.code 429){ console.log(data.msg) mdui.snackbar({ message: data.msg, position: right-bottom, }); } else { console.log(Danmaku sent:, data); } }).catch(err > console.error(err)); input.value ; } } } function connect() { window.location.href /auth; // 更改为实际的OAuth登录地址 } function disconnect() { mdui.snackbar({ message: 退出登录吗?, buttonText: 确定退出, position: right-top, onButtonClick: function(){ window.location.href /auth/logout; // 更改为实际的OAuth登出地址 } }); } function EnterKey(event) { if (event.keyCode 13) { send(); } }/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]