whois.handle: CHINANET-HB
whois.name: CHINANET Hubei province network
whois.cidrs: 119.96.0.0/13
whois.updated: 2021-06-15T00:00:00.000000
services.protocol: SSH
services.transport_protocol: TCP
services.scan_time: 2025-07-27T17:54:36.204718
services.banner: SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u3
services.value: remote-access
services.raw: SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u3
services.protocol_version: 2.0
services.software_version: OpenSSH_9.2p1
services.comment: Debian-2+deb12u3
services.kex_algorithms: sntrup761x25519-sha512@openssh.com curve25519-sha256 curve25519-sha256@libssh.org ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 diffie-hellman-group-exchange-sha256 diffie-hellman-group16-sha512 diffie-hellman-group18-sha512 diffie-hellman-group14-sha256 kex-strict-s-v00@openssh.com
services.host_key_algorithms: rsa-sha2-512 rsa-sha2-256 ecdsa-sha2-nistp256 ssh-ed25519
services.client_to_server_ciphers: chacha20-poly1305@openssh.com aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com aes256-gcm@openssh.com
services.server_to_client_ciphers: chacha20-poly1305@openssh.com aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com aes256-gcm@openssh.com
services.client_to_server_macs: umac-64-etm@openssh.com umac-128-etm@openssh.com hmac-sha2-256-etm@openssh.com hmac-sha2-512-etm@openssh.com hmac-sha1-etm@openssh.com umac-64@openssh.com umac-128@openssh.com hmac-sha2-256 hmac-sha2-512 hmac-sha1
services.server_to_client_macs: umac-64-etm@openssh.com umac-128-etm@openssh.com hmac-sha2-256-etm@openssh.com hmac-sha2-512-etm@openssh.com hmac-sha1-etm@openssh.com umac-64@openssh.com umac-128@openssh.com hmac-sha2-256 hmac-sha2-512 hmac-sha1
services.client_to_server_compression: none zlib@openssh.com
services.server_to_client_compression: none zlib@openssh.com
services.kex_algorithm: curve25519-sha256@libssh.org
services.host_key_algorithm: ecdsa-sha2-nistp256
services.cipher: aes128-ctr
services.mac: hmac-sha2-256
services.compression: none
services.cipher: aes128-ctr
services.mac: hmac-sha2-256
services.compression: none
services.curve: P-256
services.hassh_fingerprint: a65c3b91f743d3f246e72172e77288f1
services.protocol: SSH
services.transport_protocol: TCP
services.scan_time: 2025-07-28T09:32:55.223386
services.banner: SSH-2.0-dropbear_2019.78
services.source: OSI_APPLICATION_LAYER
services.part: a
services.vendor: Dropbear SSH Project
services.product: Dropbear SSH
services.version: 2019.78
services.cpe: cpe:2.3:a:dropbear_ssh_project:dropbear_ssh:2019.78:*:*:*:*:*:*:*
services.value: remote-access
services.raw: SSH-2.0-dropbear_2019.78
services.protocol_version: 2.0
services.software_version: dropbear_2019.78
services.kex_algorithms: curve25519-sha256 curve25519-sha256@libssh.org ecdh-sha2-nistp521 ecdh-sha2-nistp384 ecdh-sha2-nistp256 diffie-hellman-group14-sha256 diffie-hellman-group14-sha1 kexguess2@matt.ucc.asn.au
services.host_key_algorithms: ecdsa-sha2-nistp256 ssh-rsa ssh-dss
services.client_to_server_ciphers: aes128-ctr aes256-ctr
services.server_to_client_ciphers: aes128-ctr aes256-ctr
services.client_to_server_macs: hmac-sha1 hmac-sha2-256
services.server_to_client_macs: hmac-sha1 hmac-sha2-256
services.client_to_server_compression: none
services.server_to_client_compression: none
services.kex_algorithm: curve25519-sha256@libssh.org
services.host_key_algorithm: ecdsa-sha2-nistp256
services.cipher: aes128-ctr
services.mac: hmac-sha2-256
services.compression: none
services.cipher: aes128-ctr
services.mac: hmac-sha2-256
services.compression: none
services.curve: P-256
services.hassh_fingerprint: 8e6e6fecca017466af7fa13916452820
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T07:55:08.874434
services.banner: HTTP/1.1 401 Unauthorized
  Www-Authenticate: Basic realm="xlp"
  Date:  <REDACTED>
  Content-Length: 0
  
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T07:55:08.874434
services.uri: http://119.99.164.84:2345/
services.protocol: HTTP/1.1
services.status_reason: Unauthorized
services.key: Www-Authenticate
services.headers: Basic realm="xlp"
services.key: Date
services.headers: <REDACTED>
services.key: Content-Length
services.headers: 0
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T06:02:47.754643
services.banner: HTTP/1.1 401 Unauthorized
  Content-Type: text/plain; charset=utf-8
  Www-Authenticate: Basic realm="Restricted"
  X-Content-Type-Options: nosniff
  Date:  <REDACTED>
  Content-Length: 15
  
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T06:02:47.754643
services.uri: http://119.99.164.84:5005/
services.protocol: HTTP/1.1
services.status_reason: Unauthorized
services.key: Www-Authenticate
services.headers: Basic realm="Restricted"
services.key: Content-Length
services.headers: 15
services.key: X-Content-Type-Options
services.headers: nosniff
services.key: Content-Type
services.headers: text/plain; charset=utf-8
services.key: Date
services.headers: <REDACTED>
services.body: Not Authorized
  
services.body_hash_sha1: sha1:0e23cebe44e9a7524ef46e97813d5091686d9a91
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T07:00:41.156798
services.banner: HTTP/1.1 200 OK
  Server: nginx
  Date:  <REDACTED>
  Content-Type: text/html
  Last-Modified: Sun, 20 Jul 2025 17:33:40 GMT
  Transfer-Encoding: chunked
  Connection: keep-alive
  Vary: Accept-Encoding
  ETag: W/"687d2874-b72"
  Cache-Control: no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0
  Pragma: no-cache
  Expires: 0
  Content-Encoding: gzip
  
services.source: OSI_APPLICATION_LAYER
services.part: a
services.vendor: nginx
services.product: nginx
services.cpe: cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T07:00:41.156798
services.uri: http://119.99.164.84:5666/
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: Vary
services.headers: Accept-Encoding
services.key: Server
services.headers: nginx
services.key: Expires
services.headers: 0
services.key: Cache-Control
services.headers: no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0
services.key: Content-Type
services.headers: text/html
services.key: Pragma
services.headers: no-cache
services.key: Date
services.headers: <REDACTED>
services.key: ETag
services.headers: W/"687d2874-b72"
services.key: Transfer-Encoding
services.headers: chunked
services.key: Last-Modified
services.headers: Sun, 20 Jul 2025 17:33:40 GMT
services.key: Content-Encoding
services.headers: gzip
services.key: Connection
services.headers: keep-alive
services.html_tags: <title>飞牛 fnOS</title> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=0.5 minimum-scale=0.5" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
services.body: <!DOCTYPE html>
  <html class="light" lang="zh-CN">
    <head>
      <script type="module" crossorigin src="/assets/polyfills-CloYm7Dj.js"></script>
  
      <meta charset="UTF-8" />
      <!-- <meta name="viewport" content="width=device-width, initial-scale=0.5 minimum-scale=0.5" /> -->
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <style>
        html,
        body {
          background: linear-gradient(110deg, #4a5568 0.26%, #3a424f 97.78%);
        }
        .incompatible-box {
          display: flex;
          width: 100%;
          height: 100vh;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          background-color: white;
        }
        .incompatible-box h1 {
          margin: 0;
          font-size: 32px;
          line-height: 44px;
          font-weight: 600;
          color: #202327;
          margin-bottom: 20px;
        }
        .incompatible-box .item1 {
          margin-right: 60px;
        }
        .incompatible-box .logo {
          position: absolute;
          display: flex;
          bottom: 40px;
          left: 50%;
          transform: translateX(-50%);
        }
        .incompatible-box .logo div {
          font-size: 20px;
          line-height: 32px;
          font-weight: 600;
          color: #202327;
          margin-left: 8px;
        }
        .incompatible-box p {
          margin: 0;
          font-size: 18px;
          line-height: 24px;
          color: #4a5568;
          margin-bottom: 60px;
        }
        .incompatible-box span {
          display: inline-block;
          margin-top: 14px;
        }
      </style>
      <title>飞牛 fnOS</title>
      <script type="module" crossorigin src="/assets/index-CQTteHea.js"></script>
      <link rel="modulepreload" crossorigin href="/assets/codemirror-D-aNaB2m.js">
      <link rel="modulepreload" crossorigin href="/assets/lottie-react-BfmfuY3x.js">
      <link rel="modulepreload" crossorigin href="/assets/rc-select-p_lD8rkj.js">
      <link rel="modulepreload" crossorigin href="/assets/lodash-C933sey-.js">
      <link rel="stylesheet" crossorigin href="/assets/index-CD2z7nnb.css">
    </head>
  
    <body>
      <div id="root"></div>
      <script>
        function isIE() {
          var myNav = navigator.userAgent.toLowerCase();
          return myNav.indexOf('msie') != -1 || myNav.indexOf('trident') != -1 ? true : false;
        }
        if (isIE()) {
          document.querySelector('#root').innerHTML =
            '<div class="incompatible-box"><h1>当前浏览器不兼容飞牛</h1><p>我们建议您使用以下浏览器的最新版获取更好的体验</p><div><img src="static/img/chrome.png" class="item1" alt="" width="auto" height="100" /><img src="static/img/edge.png" alt="" width="auto" height="100" /></div><div><span class="item1">Google Chrome</span><span>Microsoft Edge</span></div><div class="logo"><img src="static/img/trim-logo.png" width="32" height="32" /><div>飞牛</div></div></div>';
        }
      </script>
    </body>
  </html>
  
services.name: http://119.99.164.84:5666/favicon.ico
services.body_hash_sha1: sha1:b821450bc09b3eceb5b47105dfd8e73d8487c4bc
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-27T23:54:44.539090
services.banner: HTTP/1.1 200 OK
  Server: nginx
  Date:  <REDACTED>
  Content-Type: text/html
  Content-Length: 13822
  Last-Modified: Sat, 05 Jul 2025 14:21:33 GMT
  Connection: keep-alive
  ETag: "686934ed-35fe"
  Cache-Control: no-cache
  Accept-Ranges: bytes
  
services.source: OSI_APPLICATION_LAYER
services.part: a
services.vendor: nginx
services.product: nginx
services.cpe: cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*
services.value: login-page
services.value: bootstrap
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-27T23:54:44.539090
services.uri: http://119.99.164.84:8010/
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: Last-Modified
services.headers: Sat, 05 Jul 2025 14:21:33 GMT
services.key: Server
services.headers: nginx
services.key: Accept-Ranges
services.headers: bytes
services.key: Cache-Control
services.headers: no-cache
services.key: Content-Type
services.headers: text/html
services.key: Date
services.headers: <REDACTED>
services.key: ETag
services.headers: "686934ed-35fe"
services.key: Connection
services.headers: keep-alive
services.key: Content-Length
services.headers: 13822
services.html_tags: <title></title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
services.body: <!DOCTYPE html>
  <html lang="en" class="noVNC_loading">
  <head>
  
      <title></title>
  
      <meta charset="utf-8">
  
      <!-- BEGIN Favicons -->
      <link rel="icon" href="favicon.ico?v=7472510479" sizes="32x32">
      <link rel="apple-touch-icon" href="apple-touch-icon.png?v=7472510479">
      <link rel="manifest" href="site.webmanifest?v=7472510479">
      <!-- END Favicons -->
  
      <!-- Always force latest IE rendering engine -->
      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  
      <!-- Apple iOS Safari settings -->
      <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
      <meta name="apple-mobile-web-app-capable" content="yes">
      <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  
      <!-- Stylesheets -->
      <link rel="stylesheet" href="app/styles/fontawesome.min.css?v=72b3d3ba60">
      <link rel="stylesheet" href="app/styles/solid.min.css?v=72b3d3ba60">
      <link rel="stylesheet" href="app/styles/bootstrap.min.css?v=72b3d3ba60">
      <link rel="stylesheet" href="app/styles/base.css?v=72b3d3ba60">
  
      <!-- Images that will later appear via CSS -->
      <link rel="preload" as="image" href="app/images/info.svg">
      <link rel="preload" as="image" href="app/images/error.svg">
      <link rel="preload" as="image" href="app/images/warning.svg">
  
      <!-- Scripts -->
      <script src="app/bootstrap.bundle.min.js?v=72b3d3ba60"></script>
      <script src="app/msgpack-ygoe.min.js?v=72b3d3ba60"></script>
  
      <script type="module" crossorigin="anonymous" src="app/error-handler.js"></script>
  
      <script type="module">
          import UI from "./app/ui.js?v=72b3d3ba60";
          import * as Log from './core/util/logging.js?v=72b3d3ba60';
  
          UI.start();
      </script>
  </head>
  
  <body>
      <!-- Fatal error message box -->
      <div id="noVNC_fallback_error" class="noVNC_center">
          <div>
              <div>Unexpected error encountered:</div>
              <br>
              <div id="noVNC_fallback_errormsg"></div>
          </div>
      </div>
  
      <!-- Control Bar -->
      <div id="noVNC_control_bar_anchor" class="noVNC_vcenter noVNC_hidden">
          <div id="noVNC_control_bar" class="d-flex flex-row">
              <!-- Control bar content. -->
              <div class="card noVNC_scroll" style="width: 21rem; font-size: 14px;">
                  <!-- Control bar header -->
                  <div class="card-header d-flex align-items-center">
                      <img class="pe-2" style="height: 25px;" src="app/images/icons/master_icon.png?v=72b3d3ba60" id="noVNC_app_logo">
                      <h5 class="m-0" name="noVNC_app_name">DockerApp</h5>
                      <div class="ms-auto"><a class="btn shadow-none p-0 px-0 noVNC_hidden" href="logout" title="Logout" id="noVNC_logout_button"><i class="fas fa-sign-out-alt fa-fw"></i></a></div>
                  </div>
                  <!-- Control bar body -->
                  <ul class="list-group list-group-flush">
                      <!-- Action icons -->
                      <li class="list-group-item" id="noVNC_action_icons_section">
                          <div class="d-flex justify-content-center align-items-center">
                              <a class="btn shadow-none p-0 px-2" href="#" title="Show Keyboard" id="noVNC_keyboard_button"><i class="fas fa-keyboard fa-fw fa-lg"></i></a>
                              <a class="btn shadow-none p-0 px-2 noVNC_hidden" href="#" title="Fullscreen" id="noVNC_fullscreen_button"><i class="fas fa-expand fa-fw fa-lg"></i></a>
                              <a class="btn shadow-none p-0 px-2 noVNC_hidden" href="#" title="Move/Drag Viewport" id="noVNC_view_drag_button"><i class="fas fa-hand-rock fa-fw fa-lg"></i></a>
                              <a class="btn shadow-none p-0 px-2 noVNC_hidden" href="#" title="Open File Manager" id="noVNC_file_manager_button"><i class="fas fa-folder fa-fw fa-lg"></i></a>
                          </div>
                      </li>
                      <!-- Clipboard -->
                      <li class="list-group-item">
                          <!--                        <label for="noVNC_clipboard_text" class="custom-accordion-button text-nowrap" data-bs-toggle="collapse" data-bs-target="#clipboardCollapse">Clipboard</label>-->
                          <label class="custom-accordion-button text-nowrap" data-bs-toggle="collapse" data-bs-target="#clipboardCollapse">Clipboard</label>
                          <div class="input-group input-group-sm collapse show" id="clipboardCollapse">
                              <textarea class="form-control" wrap="off" rows="3" id="noVNC_clipboard_text"></textarea>
                              <button class="btn btn-outline-secondary" type="button" id="noVNC_clipboard_clear_button">Clear</button>
                          </div>
                      </li>
                      <!-- Audio -->
                      <li class="list-group-item noVNC_hidden" id="noVNC_audio_section">
                          <label class="custom-accordion-button text-nowrap" data-bs-toggle="collapse" data-bs-target="#audioCollapse">Audio</label>
                          <div class="collapse show" id="audioCollapse">
                              <div class="d-flex flex-row">
                                  <a class="btn shadow-none p-0 pe-1" href="#" title="Mute/Unmute" id="noVNC_audio_button"><i class="fas fa-volume-mute fa-fw fa-lg" id="noVNC_audio_button_icon"></i></a>
                                  <input type="range" min="0" max="100" value="0" class="form-range flex-grow-1" id="noVNC_setting_audio_volume">
                              </div>
                          </div>
                      </li>
                      <!-- Settings -->
                      <li class="list-group-item">
                          <label class="custom-accordion-button text-nowrap" data-bs-toggle="collapse" data-bs-target="#settingsCollapse">Settings</label>
                          <div class="collapse show" id="settingsCollapse">
                              <!-- Clip to window -->
                              <div class="form-check form-switch mb-2">
                                  <input class="form-check-input" type="checkbox" role="switch" id="noVNC_setting_view_clip">
                                  <label class="form-check-label text-nowrap" for="noVNC_setting_view_clip">Clip to Window</label>
                              </div>
                              <!-- Scaling mode -->
                              <div class="input-group input-group-sm mb-2">
                                  <label class="input-group-text" for="noVNC_setting_resize">Scaling Mode</label>
                                  <select class="form-select" id="noVNC_setting_resize">
                                      <option value="off">None</option>
                                      <option value="scale">Local Scaling</option>
                                      <option value="remote">Remote Resizing</option>
                                  </select>
                              </div>
                              <!-- Quality -->
                              <div>
                                  <label for="noVNC_setting_quality" class="text-nowrap">Quality</label>
                                  <input type="range" min="0" max="9" value="6" class="form-range" id="noVNC_setting_quality">
                              </div>
                              <!-- Compression level -->
                              <div class="mb-1">
                                  <label for="noVNC_setting_compression" class="text-nowrap">Compression Level</label>
                                  <input type="range" min="0" max="9" value="2" class="form-range" id="noVNC_setting_compression">
                              </div>
                              <!-- Logging -->
                              <div class="input-group input-group-sm">
                                  <label class="input-group-text" for="noVNC_setting_logging">Logging</label>
                                  <select class="form-select" id="noVNC_setting_logging">
                                      <option value="error">Error</option>
                                      <option value="warn">Warning</option>
                                      <option value="info">Info</option>
                                      <option value="debug">Debug</option>
                                  </select>
                              </div>
                          </div>
                      </li>
                  </ul>
                  <!-- Control bar footer -->
                  <div id="noVNC_version_footer" class="card-footer noVNC_hidden">
                      <div id="noVNC_version_app" class="noVNC_hidden"><small class="text-muted text-nowrap">Application vX.Y.Z</small></div>
                      <div id="noVNC_version_docker_image" class="noVNC_hidden"><small class="text-muted text-nowrap">Docker Image vX.Y.Z</small></div>
                  </div>
              </div>
              <!-- Control bar handle -->
              <div id="noVNC_control_bar_handle" class="handle">
                  <div class="dots"></div>
              </div>
          </div>
          <!-- Control bar hint -->
          <div id="noVNC_control_bar_hint"></div>
      </div> <!-- End of Control Bar -->
  
      <!-- Status Dialog -->
      <div id="noVNC_status"></div>
  
      <!-- Password Dialog -->
      <div class="noVNC_center noVNC_connect_layer">
          <div id="noVNC_credentials_dlg">
              <div class="card">
                  <div class="card-header" name="noVNC_app_name">DockerApp</div>
                  <div class="card-body">
                      <h5 class="card-title">Credentials needed</h5>
                      <p class="card-text">Please enter the credentials to connect.</p>
                      <form>
                          <div id="noVNC_username_block" mclass="mb-3">
                              <input type="text" class="form-control" placeholder="Username" id="noVNC_username_input">
                          </div>
                          <div id="noVNC_password_block" class="mb-3">
                              <input type="password" class="form-control" placeholder="Password" id="noVNC_password_input">
                          </div>
                          <button type="submit" id="noVNC_credentials_button" class="btn btn-primary">Submit</button>
                      </form>
                  </div>
              </div>
          </div>
      </div>
  
      <!-- File Manager Dialog -->
      <div class="noVNC_center">
          <div class="fmgr-dialog container px-5" id="noVNC_file_manager_dlg">
              <div class="card" style="min-width: 300px; min-height: 250px;">
                  <div class="card-header d-flex justify-content-between align-items-center">
                      File Manager
                      <button type="button" class="fmgr-dialog-close-btn btn-close" aria-label="Close"></button>
                  </div>
                  <div class="card-body d-flex flex-column row-gap-2" style="height: 60vh">
                      <!-- Error message. -->
                      <div class="fmgr-alert"></div>
                      <!-- Toolbar buttons. -->
                      <div>
                          <div class="toolbar d-flex justify-content-start">
                              <button type="button" class="fmgr-upload-btn btn btn-primary btn-click-effect" title="Upload Files"><i class="fas fa-upload"></i></button>
                              <button type="button" class="fmgr-new-folder-btn btn btn-success btn-click-effect" title="Create New Folder"><i class="fas fa-folder-plus"></i></button>
                              <button type="button" class="fmgr-go-up-btn btn btn-secondary btn-click-effect" title="Go to Parent Folder" disabled><i class="fas fa-arrow-up"></i></button>
                              <button type="button" class="fmgr-refresh-btn btn btn-secondary btn-click-effect" title="Refresh"><i class="fas fa-sync"></i></button>
                          </div>
                          <input type="file" class="d-none fmgr-file-input" multiple>
                      </div>
                      <!-- Current path. -->
                      <div class="d-flex flex-nowrap"><span class="me-1">Path:</span><span class="fmgr-current-path text-truncate">/</span></div>
                      <!-- Progress bar for upload. -->
                      <div class="fmgr-upload-progress d-flex align-items-center column-gap-1 d-none">
                          <div class="fmgr-progress-bar progress w-100" role="progressbar" aria-label="Upload progress" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
                              <div class="progress-bar" style="width: 25%"></div>
                          </div>
                          <a class="fmgr-upload-cancel-btn btn shadow-none p-0 text-danger border-0" href="#" title="Cancel Upload"><i class="fas fa-times-circle"></i></a>
                      </div>
                      <!-- File list. -->
                      <div class="fmgr-file-list d-flex flex-column align-items-stretch overflow-y-auto border-top"></div>
                  </div>
              </div>
          </div>
      </div>
  
      <!-- Transition Screens -->
      <div id="noVNC_transition">
          <div id="noVNC_transition_text"></div>
          <div class="noVNC_spinner"></div>
      </div>
  
      <!-- This is where the RFB elements will attach -->
      <div id="noVNC_container">
          <!-- Note that Google Chrome on Android doesn't respect any of these,
               html attributes which attempt to disable text suggestions on the
               on-screen keyboard. Let's hope Chrome implements the ime-mode
               style for example -->
          <textarea id="noVNC_keyboardinput" autocapitalize="off"
              autocomplete="off" spellcheck="false" tabindex="-1"></textarea>
      </div>
  
  </body>
  </html>
  
services.name: http://119.99.164.84:8010/favicon.ico?v=7472510479
services.name: http://119.99.164.84:8010/apple-touch-icon.png?v=7472510479
services.name: http://119.99.164.84:8010/favicon.ico
services.body_hash_sha1: sha1:adf9261f50a490f4116c902076134d8456de38c0
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T07:12:56.913790
services.banner: HTTP/1.1 200 OK
  cache-control: no-store
  connection: keep-alive
  content-encoding: gzip
  content-length: 650
  content-security-policy: default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; object-src 'none'; form-action 'self'; frame-ancestors 'self';
  content-type: text/html
  cross-origin-opener-policy: same-origin
  date:  <REDACTED>
  referrer-policy: same-origin
  x-content-type-options: nosniff
  x-frame-options: SAMEORIGIN
  x-xss-protection: 1; mode=block
  
services.source: OSI_APPLICATION_LAYER
services.part: a
services.vendor: qBittorrent
services.product: qBittorrent
services.cpe: cpe:2.3:a:qbittorrent:qbittorrent:*:*:*:*:*:*:*:*
services.value: file-sharing
services.value: torrent
services.value: login-page
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T07:12:56.913790
services.uri: http://119.99.164.84:8085/
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: cross-origin-opener-policy
services.headers: same-origin
services.key: x-xss-protection
services.headers: 1; mode=block
services.key: cache-control
services.headers: no-store
services.key: content-security-policy
services.headers: default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; object-src 'none'; form-action 'self'; frame-ancestors 'self';
services.key: content-length
services.headers: 650
services.key: referrer-policy
services.headers: same-origin
services.key: date
services.headers: <REDACTED>
services.key: content-type
services.headers: text/html
services.key: connection
services.headers: keep-alive
services.key: x-frame-options
services.headers: SAMEORIGIN
services.key: x-content-type-options
services.headers: nosniff
services.key: content-encoding
services.headers: gzip
services.html_tags: <title>qBittorrent Web UI</title> <meta charset="UTF-8" />
services.body: <!DOCTYPE html>
  <html lang="zh">
  
  <head>
      <meta charset="UTF-8" />
      <title>qBittorrent Web UI</title>
      <link rel="icon" type="image/png" href="images/qbittorrent32.png" />
      <link rel="icon" type="image/svg+xml" href="images/qbittorrent-tray.svg" />
      <link rel="stylesheet" type="text/css" href="css/login.css?v=17vicaw" />
      <noscript>
          <link rel="stylesheet" type="text/css" href="css/noscript.css?v=17vicaw" />
      </noscript>
      <script src="scripts/login.js?locale=zh&v=17vicaw"></script>
  </head>
  
  <body>
      <noscript id="noscript">
          <h1>需要 JavaScript！您必须启用 JavaScript 以确保 Web UI 正常运行</h1>
      </noscript>
      <div id="main">
          <h1>qBittorrent Web UI</h1>
          <div id="logo" class="col">
              <img src="images/qbittorrent-tray.svg" alt="qBittorrent logo" />
          </div>
          <div id="formplace" class="col">
              <form id="loginform" method="post" onsubmit="submitLoginForm(event);">
                  <div class="row">
                      <label for="username">用户名</label><br />
                      <input type="text" id="username" name="username" autocomplete="username" required />
                  </div>
                  <div class="row">
                      <label for="password">密码</label><br />
                      <input type="password" id="password" name="password" autocomplete="current-password" required />
                  </div>
                  <div class="row">
                      <input type="submit" id="login" value="登录" />
                  </div>
              </form>
          </div>
          <div id="error_msg"></div>
      </div>
  </body>
  
  </html>
  
services.name: http://119.99.164.84:8085/images/qbittorrent32.png
services.name: http://119.99.164.84:8085/images/qbittorrent-tray.svg
services.body_hash_sha1: sha1:612df37a79dde1e498d2d998cbc7b207d6960a73
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-27T22:58:51.383210
services.banner: HTTP/1.1 200 OK
  X-Powered-By: Express
  Access-Control-Allow-Origin: *
  X-Content-Type-Options: nosniff
  X-Frame-Options: SAMEORIGIN
  X-XSS-Protection: 1; mode=block
  Content-Type: text/html; charset=utf-8
  Content-Length: 28874
  ETag: W/"70ca-3xSR/7eavOnEZrNawVyUrP2B6Gc"
  Date:  <REDACTED>
  Connection: keep-alive
  Keep-Alive: timeout=5
  
services.source: OSI_APPLICATION_LAYER
services.part: a
services.product: Express
services.cpe: cpe:2.3:a:*:express:*:*:*:*:*:*:*:*
services.value: login-page
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-27T22:58:51.383210
services.uri: http://119.99.164.84:8088/
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: Access-Control-Allow-Origin
services.headers: *
services.key: Keep-Alive
services.headers: timeout=5
services.key: X-Frame-Options
services.headers: SAMEORIGIN
services.key: X-XSS-Protection
services.headers: 1; mode=block
services.key: X-Content-Type-Options
services.headers: nosniff
services.key: Content-Type
services.headers: text/html; charset=utf-8
services.key: Date
services.headers: <REDACTED>
services.key: ETag
services.headers: W/"70ca-3xSR/7eavOnEZrNawVyUrP2B6Gc"
services.key: X-Powered-By
services.headers: Express
services.key: Connection
services.headers: keep-alive
services.key: Content-Length
services.headers: 28874
services.html_tags: <title>LibreTV - 免费在线视频搜索与观看平台</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="LibreTV是一个免费的在线视频搜索平台，无广告、安全，提供来自多个视频源的内容搜索与观看服务，无需注册即可使用。"> <meta name="keywords" content="在线视频,免费视频,视频搜索,电影,电视剧,LibreTV"> <meta name="author" content="LibreTV Team">
services.body: <!DOCTYPE html>
  <html lang="zh">
  <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>LibreTV - 免费在线视频搜索与观看平台</title>
      <meta name="description" content="LibreTV是一个免费的在线视频搜索平台，无广告、安全，提供来自多个视频源的内容搜索与观看服务，无需注册即可使用。">
      <meta name="keywords" content="在线视频,免费视频,视频搜索,电影,电视剧,LibreTV">
      <meta name="author" content="LibreTV Team">
  
      <!-- Favicon -->
      <link rel="icon" href="image/logo.png">
      <link rel="apple-touch-icon" href="image/logo-black.png">
      <link rel="manifest" href="manifest.json">
      
      <script src="libs/tailwindcss.min.js"></script>
      <link rel="stylesheet" href="css/styles.css">
      <link rel="stylesheet" href="css/index.css">
  </head>
  <body class="page-bg text-white">
      <!-- 将历史记录按钮移到左上角，并缩小尺寸 -->
      <div class="fixed top-4 left-4 z-10">
          <button onclick="toggleHistory(event)" class="bg-[#222] hover:bg-[#333] border border-[#333] hover:border-white rounded-lg px-3 py-1.5 transition-colors" aria-label="观看历史">
              <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path>
              </svg>
          </button>
      </div>
  
      <!-- 设置按钮保留在右上角，并缩小尺寸 -->
      <div class="fixed top-4 right-4 z-10">
          <button onclick="toggleSettings(event)" class="bg-[#222] hover:bg-[#333] border border-[#333] hover:border-white rounded-lg px-3 py-1.5 transition-colors" aria-label="打开设置">
              <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"></path>
                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
              </svg>
          </button>
      </div>
      
      <!-- 历史记录面板 - 标题居中 -->
      <div id="historyPanel" class="history-panel fixed left-0 top-0 h-full bg-[#111] border-r border-[#333] p-6 z-40 transform -translate-x-full transition-transform duration-300" aria-label="观看历史" aria-hidden="true">
          <div class="flex justify-between items-center mb-6">
                  <button onclick="toggleHistory()" class="close-btn">
                      <svg fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                          <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
                      </svg>
                  </button>
              <h3 class="text-xl font-bold gradient-text mx-auto">观看历史</h3>
              <div class="w-4"></div> <!-- 添加一个占位元素以确保标题居中 -->
          </div>
          <div id="historyList" class="pb-4">
              <!-- 历史记录将在这里动态显示 -->
              <div class="text-center text-gray-500 py-8">暂无观看记录</div>
          </div>
          <div class="mt-4 text-center sticky bottom-0 pb-2 pt-2 bg-[#111]">
              <button onclick="clearViewingHistory()" class="px-4 py-2 w-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 hover:from-indigo-600 hover:via-purple-600 hover:to-pink-600 text-white rounded-lg text-sm transition-all duration-300 shadow-md hover:shadow-lg">
                  清空历史记录
              </button>
          </div>
      </div>
  
      <!-- 设置面板 -->
      <div id="settingsPanel" class="settings-panel fixed right-0 top-0 h-full w-80 bg-[#111] border-l border-[#333] p-6 z-40 overflow-y-auto" aria-label="设置面板" aria-hidden="true">
          <div class="flex justify-between items-center mb-6">
              <h3 class="text-xl font-bold gradient-text">设置</h3>
              <button onclick="toggleSettings()" class="close-btn">
                  <svg fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                      <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
                  </svg>
              </button>
          </div>
          <div class="space-y-5">
              <!-- 数据源设置区域 -->
              <div class="p-3 bg-[#151515] rounded-lg shadow-inner">
                  <label class="block text-sm font-medium text-gray-400 mb-3 border-b border-[#333] pb-1">数据源设置</label>
                  
                  <!-- 批量操作按钮 -->
                  <div class="flex space-x-2 mb-3">
                      <button onclick="selectAllAPIs(true)" class="px-2 py-1 bg-[#333] hover:bg-[#444] text-white text-xs rounded">全选</button>
                      <button onclick="selectAllAPIs(false)" class="px-2 py-1 bg-[#333] hover:bg-[#444] text-white text-xs rounded">全不选</button>
                      <button onclick="selectAllAPIs(true, true)" class="px-2 py-1 bg-[#333] hover:bg-[#444] text-white text-xs rounded">全选普通资源</button>
                  </div>
                  
                  <!-- API选择区域 - 使用滚动区域 -->
                  <div class="max-h-40 overflow-y-auto bg-[#191919] p-2 rounded-lg mb-3">
                      <div id="apiCheckboxes">
                          <!-- 这里将动态插入API复选框 -->
                      </div>
                  </div>
                  
                  <!-- API信息显示 -->
                  <div class="text-xs text-gray-500 flex justify-between items-center">
                      <span>已选API数量：<span id="selectedApiCount" class="text-white">0</span></span>
                      <span id="siteStatus" class="ml-2"></span>
                  </div>
              </div>
  
              <!-- 自定义API管理区域 -->
              <div class="p-3 bg-[#151515] rounded-lg shadow-inner">
                  <div class="flex justify-between items-center mb-2">
                      <label class="block text-sm font-medium text-gray-400 border-b border-[#333] w-full pb-1">自定义API</label>
                      <button onclick="showAddCustomApiForm()" class="bg-[#333] hover:bg-[#444] text-white w-6 h-6 rounded-full text-center leading-none text-lg ml-1">+</button>
                  </div>
                  <div id="customApisList" class="max-h-32 overflow-y-auto mb-2">
                      <!-- 自定义API将显示在这里 -->
                  </div>
                  
                  <!-- 添加自定义API表单 (默认隐藏) -->
                  <div id="addCustomApiForm" class="hidden mt-2 p-2 bg-[#191919] rounded-lg">
                      <input type="text" id="customApiName" placeholder="API名称" class="w-full bg-[#222] border border-[#333] text-white px-2 py-1 rounded mb-2" autocomplete="off">
                      <input type="text" id="customApiUrl" placeholder="https://abc.com" class="w-full bg-[#222] border border-[#333] text-white px-2 py-1 rounded mb-2" autocomplete="off">
                      <!-- 新增 detail 地址输入框 -->
                      <input type="text" id="customApiDetail" placeholder="detail地址（可选）" class="w-full bg-[#222] border border-[#333] text-white px-2 py-1 rounded mb-2" autocomplete="off">
                      <!-- 添加成人内容切换 -->
                      <div class="flex items-center mb-2">
                          <input type="checkbox" id="customApiIsAdult" class="form-checkbox h-4 w-4 text-pink-500 bg-[#222] border border-[#333]">
                          <label for="customApiIsAdult" class="ml-2 text-xs text-pink-400">黄色资源站</label>
                      </div>
                      <div class="flex space-x-2">
                          <button onclick="addCustomApi()" class="bg-blue-600 hover:bg-blue-700 text-white px-3 py-1 rounded text-xs">添加</button>
                          <button onclick="cancelAddCustomApi()" class="bg-[#444] hover:bg-[#555] text-white px-3 py-1 rounded text-xs">取消</button>
                      </div>
                  </div>
              </div>
              
              <!-- 内容过滤设置区域 -->
              <div class="p-3 bg-[#151515] rounded-lg shadow-inner">
                  <label class="block text-sm font-medium text-gray-400 mb-3 border-b border-[#333] pb-1">功能开关</label>
                  
                  <!-- 黄色内容过滤开关 -->
                  <div class="flex flex-col mb-3 pb-3 border-b border-[#222] relative">
                      <div class="flex items-center justify-between">
                          <div>
                              <label class="text-sm font-medium text-gray-400">黄色内容过滤</label>
                              <p class="text-xs text-gray-500 mt-1 filter-description">过滤"伦理片"等黄色内容</p>
                          </div>
                          <div class="relative inline-block w-12 align-middle select-none">
                              <input type="checkbox" id="yellowFilterToggle" class="opacity-0 absolute w-full h-full cursor-pointer z-10">
                              <div class="toggle-bg bg-[#333] w-12 h-6 rounded-full transition-colors duration-300 ease-in-out"></div>
                              <div class="toggle-dot absolute w-5 h-5 bg-white rounded-full top-0.5 left-0.5 transition-transform duration-300 ease-in-out"></div>
                          </div>
                      </div>
                      <!-- 警告提示将在这里动态插入 -->
                  </div>
                  
                  <!-- 广告过滤开关 -->
                  <div class="flex items-center justify-between mb-3 pb-3 border-b border-[#222]">
                      <div>
                          <label class="text-sm font-medium text-gray-400">分片广告过滤</label>
                          <p class="text-xs text-gray-500 mt-1">关闭可减少旧版浏览器卡顿</p>
                      </div>
                      <div class="relative inline-block w-12 align-middle select-none">
                          <input type="checkbox" id="adFilterToggle" class="opacity-0 absolute w-full h-full cursor-pointer z-10">
                          <div class="toggle-bg bg-[#333] w-12 h-6 rounded-full transition-colors duration-300 ease-in-out"></div>
                          <div class="toggle-dot absolute w-5 h-5 bg-white rounded-full top-0.5 left-0.5 transition-transform duration-300 ease-in-out"></div>
                      </div>
                  </div>
                  
                  <!-- 豆瓣热门开关 -->
                  <div class="flex items-center justify-between">
                      <div>
                          <label class="text-sm font-medium text-gray-400">豆瓣热门推荐</label>
                          <p class="text-xs text-gray-500 mt-1">首页显示豆瓣热门影视内容</p>
                      </div>
                      <div class="relative inline-block w-12 align-middle select-none">
                          <input type="checkbox" id="doubanToggle" class="opacity-0 absolute w-full h-full cursor-pointer z-10">
                          <div class="toggle-bg bg-[#333] w-12 h-6 rounded-full transition-colors duration-300 ease-in-out"></div>
                          <div class="toggle-dot absolute w-5 h-5 bg-white rounded-full top-0.5 left-0.5 transition-transform duration-300 ease-in-out"></div>
                      </div>
                  </div>
              </div>
  
              <!-- 一般功能区域 -->
              <div class="p-3 bg-[#151515] rounded-lg shadow-inner">
                  <label class="block text-sm font-medium text-gray-400 mb-3 border-b border-[#333] pb-1">一般功能</label>
                  <button onclick="importConfig()" class="px-4 py-2 w-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 hover:from-indigo-600 hover:via-purple-600 hover:to-pink-600 text-white rounded-lg text-sm transition-all duration-300 shadow-md hover:shadow-lg mb-2">导入配置</button>
                  <button onclick="exportConfig()" class="px-4 py-2 mb-2 w-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 hover:from-indigo-600 hover:via-purple-600 hover:to-pink-600 text-white rounded-lg text-sm transition-all duration-300 shadow-md hover:shadow-lg">导出配置</button>
                  <button onclick="clearLocalStorage()" class="px-4 py-2 w-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 hover:from-indigo-600 hover:via-purple-600 hover:to-pink-600 text-white rounded-lg text-sm transition-all duration-300 shadow-md hover:shadow-lg">清除Cookie</button>
              </div>
          </div>
      </div>
  
      <div class="container mx-auto px-4 py-8 flex flex-col h-screen">
          <div class="flex-1 flex flex-col">
              <!-- 网站标志和口号 -->
              <header class="text-center mb-2">
                  <div class="flex justify-center items-center mb-4">
                      <a href="#" onclick="resetToHome(); return false;" class="flex items-center">
                          <svg class="w-10 h-10 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                              <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"></path>
                          </svg>
                          <h1 class="text-5xl font-bold gradient-text">LibreTV</h1>
                      </a>
                  </div>
                  <p class="text-gray-400 mb-8">自由观影，畅享精彩</p>
              </header>
              
  
              <div id="searchArea" class="flex-1 flex flex-col items-center justify-center">
                  <div class="w-full max-w-2xl">
                      <div class="flex items-stretch mb-3 h-14 shadow-lg rounded-lg overflow-hidden">
                          <!-- 首页按钮 -->
                          <button onclick="resetToHome()" 
                                  class="w-20 sm:w-24 flex items-center justify-center bg-white text-black font-medium hover:bg-gray-200 transition-colors" 
                                  aria-label="返回首页" title="返回首页">
                              首页
                          </button>
                          <!-- 搜索输入 -->
                          <input type="text" 
                                 id="searchInput" 
                                 class="flex-1 bg-[#111] border-y border-[#333] text-white px-6 py-0 focus:outline-none transition-colors" 
                                 placeholder="搜索你喜欢的视频..." 
                                 autocomplete="off"
                                 aria-label="视频搜索框"
                                 oninput="toggleClearButton()">
                          <!-- 清空按钮 -->
                          <button id="clearSearchInput" 
                                  class="flex pr-2 bg-[#111] border-y border-[#333] items-center justify-center text-gray-400 hover:text-white hidden"
                                  onclick="clearSearchInput()"
                                  aria-label="清空搜索框"
                                  title="清空搜索框">
                              <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
                              </svg>
                          </button>
                          <!-- 搜索按钮 -->
                          <button onclick="search()" 
                                  class="w-20 sm:w-24 flex items-center justify-center bg-white text-black font-medium hover:bg-gray-200 transition-colors" 
                                  aria-label="搜索按钮">
                              搜索
                          </button>
                      </div>
                      
                      <!-- 添加最近搜索记录部分 -->
                      <div id="recentSearches" class="mt-4 flex flex-wrap gap-2" aria-label="最近搜索记录">
                          <!-- 这里会动态插入最近的搜索记录 -->
                      </div>
                  </div>
              </div>
              
              <!-- 豆瓣热门推荐区域: 默认隐藏，现在位于搜索区域下方，调整宽度 -->
              <div id="doubanArea" class="w-full my-8 hidden">
                  <div class="mx-auto max-w-screen-xl px-2">
                      <!-- 改进标题和标签区域布局 -->
                      <div class="mb-4">
                          <!-- 标题和刷新按钮一行 -->
                          <div class="flex items-center justify-between mb-4">
                              <div class="flex items-center">
                                  <h2 class="text-xl font-bold text-white mr-4">豆瓣热门</h2>
                                  <!-- 添加电影/电视剧切换开关 -->
                                  <div class="flex items-center bg-[#222] rounded-full p-1">
                                      <button id="douban-movie-toggle" class="px-3 py-1 text-sm rounded-full bg-pink-600 text-white">电影</button>
                                      <button id="douban-tv-toggle" class="px-3 py-1 text-sm rounded-full text-gray-300 hover:text-white">电视剧</button>
                                  </div>
                              </div>
                              <button id="douban-refresh" class="text-sm px-3 py-1 bg-pink-600 hover:bg-pink-700 text-white rounded-lg flex items-center gap-1">
                                  <span>换一批</span>
                                  <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
                                      <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" />
                                  </svg>
                              </button>
                          </div>
                          <!-- 分类标签独立成行，添加滚动支持以适应移动设备 -->
                          <div class="overflow-x-auto pb-2">
                              <div id="douban-tags" class="flex space-x-2 min-w-max"></div>
                          </div>
                      </div>
                      
                      <!-- 推荐内容 -->
                      <div id="douban-results" class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-6 xl:grid-cols-8 gap-3"></div>
                  </div>
              </div>
              
              <!-- 搜索结果：初始隐藏 -->
              <div id="resultsArea" class="w-full hidden">
                  <div class="mx-auto max-w-7xl px-2"> <!-- 添加最大宽度限制并居中 -->
                      <div class="flex justify-end items-center mb-4">
                          <div class="text-sm text-gray-400">
                              <span id="searchResultsCount">0</span> 个结果
                          </div>
                      </div>
                      <!-- 修改网格布局以适应大一些的横向卡片 -->
                      <div id="results" class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
                          <!-- 结果将在这里动态生成 -->
                      </div>
                  </div>
              </div>
          </div>
      </div>
  
      <!-- 页脚区域 -->
      <footer class="footer mt-8 py-6 border-t border-[#333] bg-[#0a0a0a]">
          <div class="container mx-auto px-4">
              <div class="flex flex-col md:flex-row justify-between items-center">
                  <div class="mb-4 md:mb-0">
                      <div class="flex items-center justify-center md:justify-start">
                          <svg class="w-6 h-6 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                              <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"></path>
                          </svg>
                          <span class="gradient-text font-bold">LibreTV</span>
                      </div>
                      <p class="text-gray-500 text-sm mt-2 text-center md:text-left">© 2025 LibreTV - 自由观影，畅享精彩</p>
                  </div>
                  
                  <div class="text-center md:text-right">
                      <p class="text-gray-500 text-sm max-w-md">
                          免责声明：本站仅为视频搜索工具，不存储、上传或分发任何视频内容。
                          所有视频均来自第三方API接口。如有侵权，请联系相关内容提供方。
                      </p>
                      <div class="mt-2 flex justify-center md:justify-end space-x-4">
                          <a href="about.html" class="text-gray-400 hover:text-white text-sm transition-colors">关于我们</a>
                          <a href="about.html" class="text-gray-400 hover:text-white text-sm transition-colors">隐私政策</a>
                          <a href="https://www.msf.hk/zh-hant/donate/general?type=one-off" target="_blank" rel="noopener" class="text-blue-400 hover:text-blue-300 text-sm transition-colors">捐赠</a>
                      </div>
                  </div>
              </div>
          </div>
      </footer>
  
      <!-- 详情模态框 -->
      <div id="modal" class="fixed inset-0 bg-black/95 hidden flex items-center justify-center transition-opacity duration-300 z-40">
          <div class="bg-[#111] p-8 rounded-lg w-11/12 max-w-4xl border border-[#333] max-h-[90vh] flex flex-col">
              <div class="flex justify-between items-center mb-6 flex-none">
                  <h2 id="modalTitle" class="text-2xl font-bold gradient-text break-words pr-4 max-w-[80%]"></h2>
                  <button onclick="closeModal()" class="text-gray-400 hover:text-white text-2xl transition-colors flex-shrink-0">&times;</button>
              </div>
              <div id="modalContent" class="overflow-auto flex-1 min-h-0">
                  <div class="grid grid-cols-2 sm:grid-cols-4 md:grid-cols-6 lg:grid-cols-8 gap-2">
                  </div>
              </div>
          </div>
      </div>
  
      <!-- 密码验证弹窗 -->
      <div id="passwordModal" class="fixed inset-0 bg-black/95 hidden items-center justify-center z-[65] transition-opacity duration-300">
          <div class="bg-[#111] p-8 rounded-lg w-11/12 max-w-md border border-[#333] max-h-[90vh] flex flex-col">
              <div class="flex justify-between items-center mb-6 flex-none">
                  <h2 class="text-2xl font-bold gradient-text">访问验证</h2>
              </div>
              <div class="mb-6">
                  <p class="text-gray-300 mb-4">请输入密码继续访问</p>
                  <form id="passwordForm" onsubmit="handlePasswordSubmit(); return false;">
                      <input type="text" name="username" id="username" autocomplete="username" style="display:none" tabindex="-1" aria-hidden="true">
                      <input type="password" id="passwordInput" class="w-full bg-[#111] border border-[#333] text-white px-4 py-3 rounded-lg focus:outline-none focus:border-white transition-colors" placeholder="密码..." autocomplete="new-password">
                      <div class="mt-4 w-full flex space-x-4">
                          <button id="passwordSubmitBtn" type="submit" class="flex-1 bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded">提交</button>
                          <button id="passwordCancelBtn" type="button" onclick="hidePasswordModal()" class="flex-1 bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded">取消</button>
                      </div>
                  </form>
                  <p id="passwordError" class="text-red-500 mt-2 hidden">密码错误，请重试</p>
              </div>
          </div>
      </div>
  
      <!-- 版权声明弹窗 -->
      <div id="disclaimerModal" class="fixed inset-0 bg-black/90 hidden items-center justify-center z-[60]">
          <div class="bg-[#111] p-8 rounded-lg border border-[#333] w-11/12 max-w-2xl max-h-[90vh] overflow-y-auto">
              <h2 class="text-2xl font-bold gradient-text mb-6 text-center">使用声明</h2>
              <div class="text-gray-300 space-y-4">
                  <p>
                      欢迎使用 LibreTV。在开始使用前，请您了解并同意以下条款：
                  </p>
                  <p>
                      <strong class="text-blue-400">服务性质：</strong> LibreTV 仅提供视频搜索服务，不直接提供、存储或上传任何视频内容。所有搜索结果均来自第三方公开接口。
                  </p>
                  <p>
                      <strong class="text-blue-400">用户责任：</strong> 用户在使用本站服务时，须遵守相关法律法规，不得利用搜索结果从事侵权行为，如下载、传播未经授权的作品等。
                  </p>
                  <p>
                      <strong class="text-blue-400">广告风险提示：</strong> 本站所有视频均来自第三方采集站，视频中出现的广告与本站无关，请勿相信或点击视频中的任何广告内容，谨防上当受骗。
                  </p>
              </div>
              <div class="mt-6 flex justify-center">
                  <button id="acceptDisclaimerBtn" class="px-6 py-3 bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white font-semibold rounded-lg hover:shadow-lg transition-all duration-300">
                      我已了解并接受
                  </button>
              </div>
          </div>
      </div>
  
      <!-- 错误提示框 -->
      <div id="toast" class="fixed top-4 left-1/2 -translate-x-1/2 bg-red-500 text-white px-6 py-3 rounded-lg shadow-lg transform transition-all duration-300 opacity-0 -translate-y-full z-50">
          <p id="toastMessage"></p>
      </div>
  
      <!-- 添加 loading 提示框 -->
      <div id="loading" class="fixed inset-0 bg-black/80 hidden items-center justify-center z-50">
          <div class="bg-[#111] p-8 rounded-lg border border-[#333] flex items-center space-x-4">
              <div class="w-8 h-8 border-4 border-white border-t-transparent rounded-full animate-spin"></div>
              <p class="text-white text-lg">加载中...</p>
          </div>
      </div>
  
      <!-- JSON-LD 结构化数据 -->
      <script type="application/ld+json">
      {
          "@context": "https://schema.org",
          "@type": "WebSite",
          "name": "LibreTV",
          "url": "https://libretv.is-an.org/",
          "description": "免费在线视频搜索与观看平台",
          "potentialAction": {
              "@type": "SearchAction",
              "target": "https://libretv.is-an.org/?s={search_term_string}",
              "query-input": "required name=search_term_string"
          }
      }
      </script>
  
      <!-- 引入纯 JS sha256（HTTP 下依然可用） -->
      <script src="libs/sha256.min.js"></script>
      <script>
          // 保存原始 js‑sha256 实现，避免被 password.js 覆盖
          window._jsSha256 = window.sha256;
      </script>
      <script src="js/config.js"></script>
      <script src="js/ui.js"></script>
      <script src="js/api.js"></script>
      <script src="js/douban.js"></script>
      <script src="js/password.js"></script>
      <script src="js/search.js"></script>
      <script src="js/app.js"></script>
  
      <!-- PWA 注册 -->
      <script src="js/pwa-register.js"></script>
  
      <!-- 环境变量注入脚本 -->
      <script>
          // 创建全局环境变量对象
          window.__ENV__ = window.__ENV__ || {};
          
          // 注入服务器端环境变量 (将由服务器端替换)
          // PASSWORD 变量将在这里被服务器端注入
          window.__ENV__.PASSWORD = "{{PASSWORD}}";
          window.__ENV__.ADMINPASSWORD = "{{ADMINPASSWORD}}";
      </script>
  
      <!-- 版本检测脚本 -->
      <script src="js/version-check.js"></script>
  
      <!-- 添加弹窗和URL搜索参数处理脚本 -->
      <script src="js/index-page.js"></script>
  </body>
  </html>
  
services.name: http://119.99.164.84:8088/image/logo.png
services.name: http://119.99.164.84:8088/image/logo-black.png
services.body_hash_sha1: sha1:df1491ffb79abce9c466b35ac15c94acfd81e867
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T04:07:38.195590
services.banner: HTTP/1.1 200 OK
  Content-Length: 15391
  Content-Type: text/html; charset=UTF-8
  Date:  <REDACTED>
  Server: UPnP/1.0 DLNADOC/1.50
  Accept-Ranges: bytes
  Access-Control-Allow-Headers: Accept, Accept-Language, Authorization, Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-MD5, Content-Range, Content-Type, Date, Host, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, Origin, OriginToken, Pragma, Range, Slug, Transfer-Encoding, Want-Digest
  Access-Control-Allow-Methods: GET, POST, PUT, DELETE, PATCH, OPTIONS
  Access-Control-Allow-Origin: *
  Cache-Control: no-cache, no-store, no-transform, must-revalidate
  ETag: "9ee783fd90ac7b21d3244a8afda6df92"
  Expires: -1
  Pragma: no-cache, no-store, no-transform, must-revalidate
  Cross-Origin-Resource-Policy: cross-origin
  Access-Control-Allow-Private-Network: true
  Private-Network-Access-Name: STAN
  Private-Network-Access-Id: 8af58a1c1a4941c3ad4c63ee3828972e
  
services.value: jquery
services.value: requirejs
services.path: /web/index.html
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T04:07:38.195590
services.uri: http://119.99.164.84:8090/web/index.html
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: Access-Control-Allow-Origin
services.headers: *
services.key: Accept-Ranges
services.headers: bytes
services.key: Expires
services.headers: -1
services.key: Cache-Control
services.headers: no-cache, no-store, no-transform, must-revalidate
services.key: Access-Control-Allow-Private-Network
services.headers: true
services.key: Content-Type
services.headers: text/html; charset=UTF-8
services.key: Pragma
services.headers: no-cache, no-store, no-transform, must-revalidate
services.key: Date
services.headers: <REDACTED>
services.key: Private-Network-Access-Name
services.headers: STAN
services.key: ETag
services.headers: "9ee783fd90ac7b21d3244a8afda6df92"
services.key: Private-Network-Access-Id
services.headers: 8af58a1c1a4941c3ad4c63ee3828972e
services.key: Access-Control-Allow-Headers
services.headers: Accept, Accept-Language, Authorization, Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-MD5, Content-Range, Content-Type, Date, Host, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, Origin, OriginToken, Pragma, Range, Slug, Transfer-Encoding, Want-Digest
services.key: Server
services.headers: UPnP/1.0 DLNADOC/1.50
services.key: Access-Control-Allow-Methods
services.headers: GET, POST, PUT, DELETE, PATCH, OPTIONS
services.key: Cross-Origin-Resource-Policy
services.headers: cross-origin
services.key: Content-Length
services.headers: 15391
services.html_tags: <title>STAN</title> <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"> <meta name="description" content="STAN"> <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <meta http-equiv="X-UA-Compatibility" content="IE=Edge"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes"> <meta name="application-name" content="STAN"> <meta name="robots" content="noindex, nofollow, noarchive"> <meta property="og:title" content="STAN"> <meta property="og:site_name" content="STAN"> <meta property="og:description" content="Energize your media."> <meta property="og:type" content="article"> <meta name="msapplication-TileImage" content="images/icon-144x144.png"> <meta name="msapplication-TileColor" content="#333333"> <meta name="theme-color" content="#43A047">
services.body: ﻿<!DOCTYPE html>
  <html data-appversion="4.8.11.0" data-culture="zh-CN" lang="zh">
  <head>
  
      <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
      <link rel="preload" href="modules/fonts/material-icons/mi_2024_05.woff2" as="font" type="font/woff2" crossorigin>
      <link rel="manifest" href="manifest.json">
      <meta name="description" content="STAN">
      <meta name="format-detection" content="telephone=no">
      <meta name="msapplication-tap-highlight" content="no">
  
      <meta http-equiv="X-UA-Compatibility" content="IE=Edge">
      <meta name="apple-mobile-web-app-capable" content="yes">
      <meta name="mobile-web-app-capable" content="yes">
      <meta name="application-name" content="STAN">
      <meta name="robots" content="noindex, nofollow, noarchive">
      <meta property="og:title" content="STAN">
      <meta property="og:site_name" content="STAN">
      
      <meta property="og:description" content="Energize your media.">
      <meta property="og:type" content="article">
      
      
      <link rel="apple-touch-icon" href="images/icon-192x192.png">
      <link rel="apple-touch-icon" sizes="72x72" href="images/icon-72x72.png">
      <link rel="apple-touch-icon" sizes="144x144" href="images/icon-144x144.png">
      <link rel="apple-touch-icon" sizes="152x152" href="images/icon-152x152.png">
      <link rel="apple-touch-icon" sizes="192x192" href="images/icon-192x192.png">
      <link rel="apple-touch-icon" sizes="384x384" href="images/icon-384x384.png">
      <link rel="apple-touch-icon" sizes="512x512" href="images/icon-512x512.png">
      <link rel="apple-touch-startup-image" href="images/splash.png">
      <link rel="shortcut icon" href="favicon.ico">
      <meta name="msapplication-TileImage" content="images/icon-144x144.png">
      <meta name="msapplication-TileColor" content="#333333">
      <meta name="theme-color" content="#43A047">
  
      <script type="importmap">
          {
            "imports": {
              "medialibraryeditor": "./components/medialibraryeditor/medialibraryeditor.js",
              "medialibrarycreator": "./components/medialibrarycreator/medialibrarycreator.js",
              "taskButton": "./components/taskbutton.js",
              "itemShortcuts": "./modules/shortcuts.js",
              "pageJs": "./modules/pagejs/page.js",
              "howler": "./modules/howlerjs/howler.core.js",
              "skinManager": "./modules/skinmanager.js",
              "playQueueManager": "./modules/common/playback/playqueuemanager.js",
              "playbackManager": "./modules/common/playback/playbackmanager.js",
              "focusManager": "./modules/focusmanager.js",
              "browserdeviceprofile": "./modules/browserdeviceprofile.js",
              "skinViewManager": "./modules/skinviewmanager.js",
              "events": "./modules/emby-apiclient/events.js",
              "connectionManager": "./modules/emby-apiclient/connectionmanager.js",
              "ApiClient": "./modules/emby-apiclient/apiclient.js",
              "urlProvider": "./modules/emby-apiclient/urlprovider.js",
              "loading": "./modules/loading/loading.js",
              "webvtt": "./modules/webvtt/vtt.js",
              "humanedate": "./modules/humanedate/humanedate.js",
              "serviceLocator": "./modules/common/servicelocator.js",
              "globalize": "./modules/common/globalize.js",
              "datetime": "./modules/common/datetime.js",
              "backdrop": "./modules/backdrop/backdrop.js",
              "qualityOptions": "./modules/common/qualityoptions.js",
              "pluginManager": "./modules/common/pluginmanager.js",
              "dataFormatter": "./modules/common/dataformatter.js",
              "itemHelper": "./modules/common/itemhelper.js",
              "itemManager": "./modules/common/itemmanager/itemmanager.js",
              "BaseItemController": "./modules/common/itemmanager/baseitemcontroller.js",
              "recordingHelper": "./modules/common/recordinghelper.js",
              "imageLoader": "./modules/common/imagehelper.js",
              "imageHelper": "./modules/common/imagehelper.js",
              "gamepadtokey": "./modules/input/gamepadtokey.js",
              "virtual-scroller": "./modules/virtual-scroller/virtual-scroller.js",
              "commandProcessor": "./modules/commandprocessor.js",
              "cssVars": "./modules/css-vars-ponyfill/css-vars-ponyfill.js",
              "browser": "./modules/browser.js",
              "backMenu": "./modules/backmenu/backmenu.js",
              "soundEffectsManager": "./modules/soundeffects/soundeffectsmanager.js",
              "soundEffectsPlayer": "./modules/soundeffects/soundeffectsplayer.js",
              "currentPlayer": "./modules/playback/currentplayer.js",
              "mediaSession": "./modules/playback/mediasession.js",
              "mainTabsManager": "./modules/maintabsmanager.js",
              "dragDropTouch": "./modules/polyfills/dragdroptouch.js",
              "appHeader": "./modules/appheader/appheader.js",
              "chromecastHelper": "./modules/chromecast/chromecasthelpers.js",
              "directorybrowser": "./modules/directorybrowser/directorybrowser.js",
              "metadataEditor": "./modules/metadataeditor/metadataeditor.js",
              "personEditor": "./modules/metadataeditor/personeditor.js",
              "playerSelectionMenu": "./modules/playback/playerselection.js",
              "playerSettingsMenu": "./modules/playback/playersettingsmenu.js",
              "emby-collapse": "./modules/emby-elements/emby-collapse/emby-collapse.js",
              "emby-button": "./modules/emby-elements/emby-button/emby-button.js",
              "emby-linkbutton": "./modules/emby-elements/emby-button/emby-button.js",
              "emby-itemscontainer": "./modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js",
              "alphaNumericShortcuts": "./modules/alphanumericshortcuts/alphanumericshortcuts.js",
              "emby-dialogclosebutton": "./modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js",
              "emby-scroller": "./modules/emby-elements/emby-scroller/emby-scroller.js",
              "emby-tabs": "./modules/emby-elements/emby-tabs/emby-tabs.js",
              "emby-scrollbuttons": "./modules/emby-elements/emby-scrollbuttons/emby-scrollbuttons.js",
              "emby-progressring": "./modules/emby-elements/emby-progressring/emby-progressring.js",
              "emby-itemrefreshindicator": "./modules/emby-elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js",
              "multiSelect": "./modules/multiselect/multiselect.js",
              "alphaPicker": "./modules/alphapicker/alphapicker.js",
              "paper-icon-button-light": "./modules/emby-elements/emby-button/paper-icon-button-light.js",
              "tabbedView": "./modules/tabbedview/tabbedview.js",
              "itemsTab": "./modules/tabbedview/itemstab.js",
              "baseView": "./modules/viewmanager/baseview.js",
              "baseTab": "./modules/tabbedview/basetab.js",
              "ListPage": "./list/list.js",
              "connectHelper": "./modules/emby-connect/connecthelper.js",
              "addToList": "./modules/addtolist/addtolist.js",
              "ItemAccessDialog": "./modules/itemaccessdialog/itemaccessdialog.js",
              "dom": "./modules/dom.js",
              "textEncoding": "./modules/common/textencoding.js",
              "playerStats": "./modules/playerstats/playerstats.js",
              "subtitleOffsetOverlay": "./modules/subtitleoffsetoverlay/subtitleoffsetoverlay.js",
              "subtitleAppearanceHelper": "./modules/common/subtitleappearancehelper.js",
              "recordingEditor": "./modules/recordingcreator/recordingeditor.js",
              "seriesRecordingEditor": "./modules/recordingcreator/seriesrecordingeditor.js",
              "recordingFields": "./modules/recordingcreator/recordingfields.js",
              "recordingButton": "./modules/recordingcreator/recordingbutton.js",
              "subtitleEditor": "./modules/subtitleeditor/subtitleeditor.js",
              "itemIdentifier": "./modules/itemidentifier/itemidentifier.js",
              "imageEditor": "./modules/imageeditor/imageeditor.js",
              "imageDownloader": "./modules/imagedownloader/imagedownloader.js",
              "itemContextMenu": "./modules/itemcontextmenu.js",
              "emby-input": "./modules/emby-elements/emby-input/emby-input.js",
              "emby-select": "./modules/emby-elements/emby-select/emby-select.js",
              "emby-multilineselect": "./modules/emby-elements/emby-multilineselect/emby-multilineselect.js",
              "emby-slider": "./modules/emby-elements/emby-slider/emby-slider.js",
              "emby-checkbox": "./modules/emby-elements/emby-checkbox/emby-checkbox.js",
              "emby-progressbar": "./modules/emby-elements/emby-progressbar/emby-progressbar.js",
              "emby-radio": "./modules/emby-elements/emby-radio/emby-radio.js",
              "emby-toggle": "./modules/emby-elements/emby-toggle/emby-toggle.js",
              "emby-textarea": "./modules/emby-elements/emby-textarea/emby-textarea.js",
              "emby-downloadbutton": "./modules/emby-elements/sync/emby-downloadbutton.js",
              "emby-playstatebutton": "./modules/emby-elements/userdatabuttons/emby-playstatebutton.js",
              "emby-ratingbutton": "./modules/emby-elements/userdatabuttons/emby-ratingbutton.js",
              "guide-settings-dialog": "./modules/emby-elements/guide/guide-settings.js",
              "tvguide": "./modules/emby-elements/guide/guide.js",
              "emby-premierecontainer": "./modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js",
              "serverRestartDialog": "./modules/serverrestartdialog/serverrestartdialog.js",
              "channelRecordingCreator": "./modules/recordingcreator/channelrecordingcreator.js",
              "homeSections": "./modules/homesections/homesections.js",
              "refreshDialog": "./modules/refreshdialog/refreshdialog.js",
              "cardBuilder": "./modules/cardbuilder/cardbuilder.js",
              "mouseManager": "./modules/input/mouse.js",
              "keyboardManager": "./modules/input/keyboard.js",
              "loadingDialog": "./modules/loadingdialog/loadingdialog.js",
              "syncDialog": "./modules/sync/sync.js",
              "syncJobEditor": "./modules/sync/syncjobeditor.js",
              "morphdom": "./modules/morphdom/morphdom.js",
              "viewManager": "./modules/viewmanager/viewmanager.js",
              "responseHelper": "./modules/common/responsehelper.js",
              "formHelper": "./modules/common/responsehelper.js",
              "slideshow": "./modules/slideshow/slideshow.js",
              "listView": "./modules/listview/listview.js",
              "indicators": "./modules/indicators/indicators.js",
              "mediaInfo": "./modules/mediainfo/mediainfo.js",
              "viewSettings": "./modules/viewsettings/viewsettings.js",
              "filterMenu": "./modules/filtermenu/filtermenu.js",
              "genericedit": "./modules/genericedit/genericedit.js",
              "registrationServices": "./modules/registrationservices/registrationservices.js",
              "serversync": "./modules/sync/serversync.js",
              "multiserversync": "./modules/sync/multiserversync.js",
              "scroller": "./modules/scroller/smoothscroller.js",
              "toast": "./modules/toast/toast.js",
              "layoutManager": "./modules/layoutmanager.js",
              "appSettings": "./modules/common/appsettings.js",
              "userSettings": "./modules/common/usersettings/usersettings.js",
              "userSettingsBuilder": "./modules/common/usersettings/usersettingsbuilder.js",
              "imageUploader": "./modules/imageuploader/imageuploader.js",
              "dockedTabs": "./modules/dockedtabs/dockedtabs.js",
              "navdrawer": "./modules/navdrawer/navdrawer.js",
              "navDrawerContent": "./modules/navdrawer/navdrawercontent.js",
              "queryString": "./modules/common/querystring.js",
              "alert": "./modules/common/dialogs/alert.js",
              "confirm": "./modules/common/dialogs/confirm.js",
              "dialog": "./modules/dialog/dialog.js",
              "dialogHelper": "./modules/dialoghelper/dialoghelper.js",
              "prompt": "./modules/prompt/prompt.js",
              "screensaverManager": "./modules/screensavermanager.js",
              "serverNotifications": "./modules/common/input/api.js",
              "headroom": "./modules/headroom/headroom.js",
              "appFooter": "./modules/appfooter/appfooter.js",
              "appRouter": "./modules/approuter.js",
              "actionsheet": "./modules/actionsheet/actionsheet.js",
              "multi-download": "./modules/multidownload.js",
              "localassetmanager": "./modules/localdatabase/localassetmanager.js",
              "inputManager": "./modules/common/inputmanager.js"
            }
          }
      </script>
  
      <title>STAN</title>
  
      <style>
          .app-splash-container {
              background-color: #000;
              position: fixed;
              z-index: 99999;
              top: 0;
              left: 0;
              right: 0;
              bottom: 0;
              contain: strict;
          }
  
          .app-splash {
              background-image: url(modules/themes/logowhite.png);
              background-position: center top;
              background-repeat: no-repeat;
              background-size: contain;
              position: fixed;
              top: 1.8em;
              left: .9em;
              width: 6.6em;
              height: 2em;
              contain: strict;
              z-index: 99999;
          }
  
          .app-splash-expanded {
              top: 30%;
              left: 30%;
              right: 30%;
              height: 20%;
              width: auto;
          }
  
          .hide {
              display: none !important;
          }
  
          @media (orientation: landscape) {
  
              .app-splash-expanded {
                  left: 37.5%;
                  right: 37.5%;
              }
          }
      </style>
  
      <link rel="stylesheet" id="theme-css" href="emby-crx/style.css" type="text/css" media="all" /> 
      <script src="emby-crx/common-utils.js"></script> 
      <script src="emby-crx/jquery-3.6.0.min.js"></script> 
      <script src="emby-crx/md5.min.js"></script> 
      <script src="emby-crx/config.js"></script> 
      <script src="emby-crx/main.js"></script>
  
  </head>
  <body class="mainAnimatedPages skinBody">
      <div class="backdropContainer"></div>
      <div class="backgroundContainer"></div>
      <div class="mainDrawer hide focuscontainer padded-bottom-page" is="emby-scroller" data-miniscrollbar="true" data-horizontal="false" data-focusscroll="true" data-navcommands="card" data-bindheader="false">
          <div class="scrollSlider mainDrawerScrollSlider"></div>
      </div>
      <div class="skinHeader focuscontainer-x focuscontainer-up headroom flex align-items-center flex-grow headerTop">
          <div class="headerLeft headerSection">
          </div>
          <div class="headerMiddle headerSection sectionTabs">
          </div>
          <div class="headerRight headerSection">
          </div>
      </div>
  
      <div class="app-splash-container">
          <div class="app-splash app-splash-expanded"></div>
      </div>
      
      <script src="apploader.js?v=4.8.11.0" defer></script>
      <script src="danmaku.min.js"></script> 
      <script data-main="ext" src="require.js"></script>
  </body>
  </html>
services.body_hash_sha1: sha1:c7e3e2229de85db63886e9c45cb7dc7eebb48501
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T09:06:58.556583
services.banner: HTTP/1.1 200 OK
  Content-Length: 15391
  Content-Type: text/html; charset=UTF-8
  Date:  <REDACTED>
  Server: UPnP/1.0 DLNADOC/1.50
  Accept-Ranges: bytes
  Access-Control-Allow-Headers: Accept, Accept-Language, Authorization, Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-MD5, Content-Range, Content-Type, Date, Host, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, Origin, OriginToken, Pragma, Range, Slug, Transfer-Encoding, Want-Digest
  Access-Control-Allow-Methods: GET, POST, PUT, DELETE, PATCH, OPTIONS
  Access-Control-Allow-Origin: *
  Cache-Control: no-cache, no-store, no-transform, must-revalidate
  ETag: "9ee783fd90ac7b21d3244a8afda6df92"
  Expires: -1
  Pragma: no-cache, no-store, no-transform, must-revalidate
  Cross-Origin-Resource-Policy: cross-origin
  Access-Control-Allow-Private-Network: true
  Private-Network-Access-Name: STAN
  Private-Network-Access-Id: 8af58a1c1a4941c3ad4c63ee3828972e
  
services.value: jquery
services.value: requirejs
services.path: /web/index.html
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T09:06:58.556583
services.uri: http://119.99.164.84:8096/web/index.html
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: Access-Control-Allow-Origin
services.headers: *
services.key: Accept-Ranges
services.headers: bytes
services.key: Expires
services.headers: -1
services.key: Cache-Control
services.headers: no-cache, no-store, no-transform, must-revalidate
services.key: Access-Control-Allow-Private-Network
services.headers: true
services.key: Content-Type
services.headers: text/html; charset=UTF-8
services.key: Pragma
services.headers: no-cache, no-store, no-transform, must-revalidate
services.key: Date
services.headers: <REDACTED>
services.key: Private-Network-Access-Name
services.headers: STAN
services.key: ETag
services.headers: "9ee783fd90ac7b21d3244a8afda6df92"
services.key: Private-Network-Access-Id
services.headers: 8af58a1c1a4941c3ad4c63ee3828972e
services.key: Access-Control-Allow-Headers
services.headers: Accept, Accept-Language, Authorization, Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-MD5, Content-Range, Content-Type, Date, Host, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, Origin, OriginToken, Pragma, Range, Slug, Transfer-Encoding, Want-Digest
services.key: Server
services.headers: UPnP/1.0 DLNADOC/1.50
services.key: Access-Control-Allow-Methods
services.headers: GET, POST, PUT, DELETE, PATCH, OPTIONS
services.key: Cross-Origin-Resource-Policy
services.headers: cross-origin
services.key: Content-Length
services.headers: 15391
services.html_tags: <title>STAN</title> <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"> <meta name="description" content="STAN"> <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <meta http-equiv="X-UA-Compatibility" content="IE=Edge"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes"> <meta name="application-name" content="STAN"> <meta name="robots" content="noindex, nofollow, noarchive"> <meta property="og:title" content="STAN"> <meta property="og:site_name" content="STAN"> <meta property="og:description" content="Energize your media."> <meta property="og:type" content="article"> <meta name="msapplication-TileImage" content="images/icon-144x144.png"> <meta name="msapplication-TileColor" content="#333333"> <meta name="theme-color" content="#43A047">
services.body: ﻿<!DOCTYPE html>
  <html data-appversion="4.8.11.0" data-culture="zh-CN" lang="zh">
  <head>
  
      <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
      <link rel="preload" href="modules/fonts/material-icons/mi_2024_05.woff2" as="font" type="font/woff2" crossorigin>
      <link rel="manifest" href="manifest.json">
      <meta name="description" content="STAN">
      <meta name="format-detection" content="telephone=no">
      <meta name="msapplication-tap-highlight" content="no">
  
      <meta http-equiv="X-UA-Compatibility" content="IE=Edge">
      <meta name="apple-mobile-web-app-capable" content="yes">
      <meta name="mobile-web-app-capable" content="yes">
      <meta name="application-name" content="STAN">
      <meta name="robots" content="noindex, nofollow, noarchive">
      <meta property="og:title" content="STAN">
      <meta property="og:site_name" content="STAN">
      
      <meta property="og:description" content="Energize your media.">
      <meta property="og:type" content="article">
      
      
      <link rel="apple-touch-icon" href="images/icon-192x192.png">
      <link rel="apple-touch-icon" sizes="72x72" href="images/icon-72x72.png">
      <link rel="apple-touch-icon" sizes="144x144" href="images/icon-144x144.png">
      <link rel="apple-touch-icon" sizes="152x152" href="images/icon-152x152.png">
      <link rel="apple-touch-icon" sizes="192x192" href="images/icon-192x192.png">
      <link rel="apple-touch-icon" sizes="384x384" href="images/icon-384x384.png">
      <link rel="apple-touch-icon" sizes="512x512" href="images/icon-512x512.png">
      <link rel="apple-touch-startup-image" href="images/splash.png">
      <link rel="shortcut icon" href="favicon.ico">
      <meta name="msapplication-TileImage" content="images/icon-144x144.png">
      <meta name="msapplication-TileColor" content="#333333">
      <meta name="theme-color" content="#43A047">
  
      <script type="importmap">
          {
            "imports": {
              "medialibraryeditor": "./components/medialibraryeditor/medialibraryeditor.js",
              "medialibrarycreator": "./components/medialibrarycreator/medialibrarycreator.js",
              "taskButton": "./components/taskbutton.js",
              "itemShortcuts": "./modules/shortcuts.js",
              "pageJs": "./modules/pagejs/page.js",
              "howler": "./modules/howlerjs/howler.core.js",
              "skinManager": "./modules/skinmanager.js",
              "playQueueManager": "./modules/common/playback/playqueuemanager.js",
              "playbackManager": "./modules/common/playback/playbackmanager.js",
              "focusManager": "./modules/focusmanager.js",
              "browserdeviceprofile": "./modules/browserdeviceprofile.js",
              "skinViewManager": "./modules/skinviewmanager.js",
              "events": "./modules/emby-apiclient/events.js",
              "connectionManager": "./modules/emby-apiclient/connectionmanager.js",
              "ApiClient": "./modules/emby-apiclient/apiclient.js",
              "urlProvider": "./modules/emby-apiclient/urlprovider.js",
              "loading": "./modules/loading/loading.js",
              "webvtt": "./modules/webvtt/vtt.js",
              "humanedate": "./modules/humanedate/humanedate.js",
              "serviceLocator": "./modules/common/servicelocator.js",
              "globalize": "./modules/common/globalize.js",
              "datetime": "./modules/common/datetime.js",
              "backdrop": "./modules/backdrop/backdrop.js",
              "qualityOptions": "./modules/common/qualityoptions.js",
              "pluginManager": "./modules/common/pluginmanager.js",
              "dataFormatter": "./modules/common/dataformatter.js",
              "itemHelper": "./modules/common/itemhelper.js",
              "itemManager": "./modules/common/itemmanager/itemmanager.js",
              "BaseItemController": "./modules/common/itemmanager/baseitemcontroller.js",
              "recordingHelper": "./modules/common/recordinghelper.js",
              "imageLoader": "./modules/common/imagehelper.js",
              "imageHelper": "./modules/common/imagehelper.js",
              "gamepadtokey": "./modules/input/gamepadtokey.js",
              "virtual-scroller": "./modules/virtual-scroller/virtual-scroller.js",
              "commandProcessor": "./modules/commandprocessor.js",
              "cssVars": "./modules/css-vars-ponyfill/css-vars-ponyfill.js",
              "browser": "./modules/browser.js",
              "backMenu": "./modules/backmenu/backmenu.js",
              "soundEffectsManager": "./modules/soundeffects/soundeffectsmanager.js",
              "soundEffectsPlayer": "./modules/soundeffects/soundeffectsplayer.js",
              "currentPlayer": "./modules/playback/currentplayer.js",
              "mediaSession": "./modules/playback/mediasession.js",
              "mainTabsManager": "./modules/maintabsmanager.js",
              "dragDropTouch": "./modules/polyfills/dragdroptouch.js",
              "appHeader": "./modules/appheader/appheader.js",
              "chromecastHelper": "./modules/chromecast/chromecasthelpers.js",
              "directorybrowser": "./modules/directorybrowser/directorybrowser.js",
              "metadataEditor": "./modules/metadataeditor/metadataeditor.js",
              "personEditor": "./modules/metadataeditor/personeditor.js",
              "playerSelectionMenu": "./modules/playback/playerselection.js",
              "playerSettingsMenu": "./modules/playback/playersettingsmenu.js",
              "emby-collapse": "./modules/emby-elements/emby-collapse/emby-collapse.js",
              "emby-button": "./modules/emby-elements/emby-button/emby-button.js",
              "emby-linkbutton": "./modules/emby-elements/emby-button/emby-button.js",
              "emby-itemscontainer": "./modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js",
              "alphaNumericShortcuts": "./modules/alphanumericshortcuts/alphanumericshortcuts.js",
              "emby-dialogclosebutton": "./modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js",
              "emby-scroller": "./modules/emby-elements/emby-scroller/emby-scroller.js",
              "emby-tabs": "./modules/emby-elements/emby-tabs/emby-tabs.js",
              "emby-scrollbuttons": "./modules/emby-elements/emby-scrollbuttons/emby-scrollbuttons.js",
              "emby-progressring": "./modules/emby-elements/emby-progressring/emby-progressring.js",
              "emby-itemrefreshindicator": "./modules/emby-elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js",
              "multiSelect": "./modules/multiselect/multiselect.js",
              "alphaPicker": "./modules/alphapicker/alphapicker.js",
              "paper-icon-button-light": "./modules/emby-elements/emby-button/paper-icon-button-light.js",
              "tabbedView": "./modules/tabbedview/tabbedview.js",
              "itemsTab": "./modules/tabbedview/itemstab.js",
              "baseView": "./modules/viewmanager/baseview.js",
              "baseTab": "./modules/tabbedview/basetab.js",
              "ListPage": "./list/list.js",
              "connectHelper": "./modules/emby-connect/connecthelper.js",
              "addToList": "./modules/addtolist/addtolist.js",
              "ItemAccessDialog": "./modules/itemaccessdialog/itemaccessdialog.js",
              "dom": "./modules/dom.js",
              "textEncoding": "./modules/common/textencoding.js",
              "playerStats": "./modules/playerstats/playerstats.js",
              "subtitleOffsetOverlay": "./modules/subtitleoffsetoverlay/subtitleoffsetoverlay.js",
              "subtitleAppearanceHelper": "./modules/common/subtitleappearancehelper.js",
              "recordingEditor": "./modules/recordingcreator/recordingeditor.js",
              "seriesRecordingEditor": "./modules/recordingcreator/seriesrecordingeditor.js",
              "recordingFields": "./modules/recordingcreator/recordingfields.js",
              "recordingButton": "./modules/recordingcreator/recordingbutton.js",
              "subtitleEditor": "./modules/subtitleeditor/subtitleeditor.js",
              "itemIdentifier": "./modules/itemidentifier/itemidentifier.js",
              "imageEditor": "./modules/imageeditor/imageeditor.js",
              "imageDownloader": "./modules/imagedownloader/imagedownloader.js",
              "itemContextMenu": "./modules/itemcontextmenu.js",
              "emby-input": "./modules/emby-elements/emby-input/emby-input.js",
              "emby-select": "./modules/emby-elements/emby-select/emby-select.js",
              "emby-multilineselect": "./modules/emby-elements/emby-multilineselect/emby-multilineselect.js",
              "emby-slider": "./modules/emby-elements/emby-slider/emby-slider.js",
              "emby-checkbox": "./modules/emby-elements/emby-checkbox/emby-checkbox.js",
              "emby-progressbar": "./modules/emby-elements/emby-progressbar/emby-progressbar.js",
              "emby-radio": "./modules/emby-elements/emby-radio/emby-radio.js",
              "emby-toggle": "./modules/emby-elements/emby-toggle/emby-toggle.js",
              "emby-textarea": "./modules/emby-elements/emby-textarea/emby-textarea.js",
              "emby-downloadbutton": "./modules/emby-elements/sync/emby-downloadbutton.js",
              "emby-playstatebutton": "./modules/emby-elements/userdatabuttons/emby-playstatebutton.js",
              "emby-ratingbutton": "./modules/emby-elements/userdatabuttons/emby-ratingbutton.js",
              "guide-settings-dialog": "./modules/emby-elements/guide/guide-settings.js",
              "tvguide": "./modules/emby-elements/guide/guide.js",
              "emby-premierecontainer": "./modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js",
              "serverRestartDialog": "./modules/serverrestartdialog/serverrestartdialog.js",
              "channelRecordingCreator": "./modules/recordingcreator/channelrecordingcreator.js",
              "homeSections": "./modules/homesections/homesections.js",
              "refreshDialog": "./modules/refreshdialog/refreshdialog.js",
              "cardBuilder": "./modules/cardbuilder/cardbuilder.js",
              "mouseManager": "./modules/input/mouse.js",
              "keyboardManager": "./modules/input/keyboard.js",
              "loadingDialog": "./modules/loadingdialog/loadingdialog.js",
              "syncDialog": "./modules/sync/sync.js",
              "syncJobEditor": "./modules/sync/syncjobeditor.js",
              "morphdom": "./modules/morphdom/morphdom.js",
              "viewManager": "./modules/viewmanager/viewmanager.js",
              "responseHelper": "./modules/common/responsehelper.js",
              "formHelper": "./modules/common/responsehelper.js",
              "slideshow": "./modules/slideshow/slideshow.js",
              "listView": "./modules/listview/listview.js",
              "indicators": "./modules/indicators/indicators.js",
              "mediaInfo": "./modules/mediainfo/mediainfo.js",
              "viewSettings": "./modules/viewsettings/viewsettings.js",
              "filterMenu": "./modules/filtermenu/filtermenu.js",
              "genericedit": "./modules/genericedit/genericedit.js",
              "registrationServices": "./modules/registrationservices/registrationservices.js",
              "serversync": "./modules/sync/serversync.js",
              "multiserversync": "./modules/sync/multiserversync.js",
              "scroller": "./modules/scroller/smoothscroller.js",
              "toast": "./modules/toast/toast.js",
              "layoutManager": "./modules/layoutmanager.js",
              "appSettings": "./modules/common/appsettings.js",
              "userSettings": "./modules/common/usersettings/usersettings.js",
              "userSettingsBuilder": "./modules/common/usersettings/usersettingsbuilder.js",
              "imageUploader": "./modules/imageuploader/imageuploader.js",
              "dockedTabs": "./modules/dockedtabs/dockedtabs.js",
              "navdrawer": "./modules/navdrawer/navdrawer.js",
              "navDrawerContent": "./modules/navdrawer/navdrawercontent.js",
              "queryString": "./modules/common/querystring.js",
              "alert": "./modules/common/dialogs/alert.js",
              "confirm": "./modules/common/dialogs/confirm.js",
              "dialog": "./modules/dialog/dialog.js",
              "dialogHelper": "./modules/dialoghelper/dialoghelper.js",
              "prompt": "./modules/prompt/prompt.js",
              "screensaverManager": "./modules/screensavermanager.js",
              "serverNotifications": "./modules/common/input/api.js",
              "headroom": "./modules/headroom/headroom.js",
              "appFooter": "./modules/appfooter/appfooter.js",
              "appRouter": "./modules/approuter.js",
              "actionsheet": "./modules/actionsheet/actionsheet.js",
              "multi-download": "./modules/multidownload.js",
              "localassetmanager": "./modules/localdatabase/localassetmanager.js",
              "inputManager": "./modules/common/inputmanager.js"
            }
          }
      </script>
  
      <title>STAN</title>
  
      <style>
          .app-splash-container {
              background-color: #000;
              position: fixed;
              z-index: 99999;
              top: 0;
              left: 0;
              right: 0;
              bottom: 0;
              contain: strict;
          }
  
          .app-splash {
              background-image: url(modules/themes/logowhite.png);
              background-position: center top;
              background-repeat: no-repeat;
              background-size: contain;
              position: fixed;
              top: 1.8em;
              left: .9em;
              width: 6.6em;
              height: 2em;
              contain: strict;
              z-index: 99999;
          }
  
          .app-splash-expanded {
              top: 30%;
              left: 30%;
              right: 30%;
              height: 20%;
              width: auto;
          }
  
          .hide {
              display: none !important;
          }
  
          @media (orientation: landscape) {
  
              .app-splash-expanded {
                  left: 37.5%;
                  right: 37.5%;
              }
          }
      </style>
  
      <link rel="stylesheet" id="theme-css" href="emby-crx/style.css" type="text/css" media="all" /> 
      <script src="emby-crx/common-utils.js"></script> 
      <script src="emby-crx/jquery-3.6.0.min.js"></script> 
      <script src="emby-crx/md5.min.js"></script> 
      <script src="emby-crx/config.js"></script> 
      <script src="emby-crx/main.js"></script>
  
  </head>
  <body class="mainAnimatedPages skinBody">
      <div class="backdropContainer"></div>
      <div class="backgroundContainer"></div>
      <div class="mainDrawer hide focuscontainer padded-bottom-page" is="emby-scroller" data-miniscrollbar="true" data-horizontal="false" data-focusscroll="true" data-navcommands="card" data-bindheader="false">
          <div class="scrollSlider mainDrawerScrollSlider"></div>
      </div>
      <div class="skinHeader focuscontainer-x focuscontainer-up headroom flex align-items-center flex-grow headerTop">
          <div class="headerLeft headerSection">
          </div>
          <div class="headerMiddle headerSection sectionTabs">
          </div>
          <div class="headerRight headerSection">
          </div>
      </div>
  
      <div class="app-splash-container">
          <div class="app-splash app-splash-expanded"></div>
      </div>
      
      <script src="apploader.js?v=4.8.11.0" defer></script>
      <script src="danmaku.min.js"></script> 
      <script data-main="ext" src="require.js"></script>
  </body>
  </html>
services.body_hash_sha1: sha1:c7e3e2229de85db63886e9c45cb7dc7eebb48501
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T08:49:11.559249
services.banner: HTTP/1.1 200 OK
  Connection: Keep-Alive
  Keep-Alive: timeout=20
  ETag: "200002118-346-676aacbb"
  Last-Modified: Tue, 24 Dec 2024 12:44:43 GMT
  Date:  <REDACTED>
  Content-Type: text/html
  Content-Length: 838
  
services.source: OSI_APPLICATION_LAYER
services.part: a
services.vendor: OpenWRT
services.product: LuCI
services.cpe: cpe:2.3:a:openwrt:luci:*:*:*:*:*:*:*:*
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T08:49:11.559249
services.uri: http://119.99.164.84:8097/
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: Last-Modified
services.headers: Tue, 24 Dec 2024 12:44:43 GMT
services.key: Keep-Alive
services.headers: timeout=20
services.key: Content-Type
services.headers: text/html
services.key: Date
services.headers: <REDACTED>
services.key: ETag
services.headers: "200002118-346-676aacbb"
services.key: Connection
services.headers: Keep-Alive
services.key: Content-Length
services.headers: 838
services.html_tags: <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="0" /> <meta http-equiv="Expires" content="Thu, 01 Jan 1970 00:00:00 GMT" /> <meta http-equiv="refresh" content="0; URL=cgi-bin/luci/" />
services.body: <?xml version="1.0" encoding="utf-8"?>
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  	<head>
  		<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
  		<meta http-equiv="Pragma" content="no-cache" />
  		<meta http-equiv="Expires" content="0" />
  		<meta http-equiv="Expires" content="Thu, 01 Jan 1970 00:00:00 GMT" />
  		<meta http-equiv="refresh" content="0; URL=cgi-bin/luci/" />
  		<style type="text/css">
  			body { background: white; font-family: arial, helvetica, sans-serif; }
  			a { color: black; }
  
  			@media (prefers-color-scheme: dark) {
  				body { background: black; }
  				a { color: white; }
  			}
  		</style>
  	</head>
  	<body>
  		<a href="cgi-bin/luci/">LuCI - Lua Configuration Interface</a>
  	</body>
  </html>
  
services.body_hash_sha1: sha1:9120ff17bbb24bfe4a06e7f4aabf97f0f25fd8da
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T10:04:03.830786
services.banner: HTTP/1.1 200 OK
  Content-Type: text/html; charset=utf-8
  Date:  <REDACTED>
  Content-Length: 1851
  
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T10:04:03.830786
services.uri: http://119.99.164.84:9000/
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: Content-Type
services.headers: text/html; charset=utf-8
services.key: Date
services.headers: <REDACTED>
services.key: Content-Length
services.headers: 1851
services.html_tags: <title>Sun-Panel</title> <title>Sun-Panel</title> <meta charset="UTF-8"> <meta content="yes" name="apple-mobile-web-app-capable"/> <meta name="referrer" content="never"> <meta name="viewport"
  		content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover" />
services.body: <!DOCTYPE html>
  <html>
  <head>
  	<meta charset="UTF-8">
  	<link rel="icon" href="/favicon.ico">
  	<meta content="yes" name="apple-mobile-web-app-capable"/>
  	<meta name="referrer" content="never">
  	<link rel="apple-touch-icon" href="/favicon.ico">
  	<link rel="stylesheet"  href="/custom/index.css">
  	<meta name="viewport"
  		content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover" />
  	<!-- <title>Sun-Panel</title> -->
  	<title>Sun-Panel</title>
    <script type="module" crossorigin src="/assets/index-D2eF0d29.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-BgR-cRcf.css">
  </head>
  
  <body class="dark:bg-black">
  	<div id="app">
  		<style>
  			.loading-wrap {
  				display: flex;
  				justify-content: center;
  				align-items: center;
  				height: 100vh;
  			}
  
  			.balls {
  				width: 4em;
  				display: flex;
  				flex-flow: row nowrap;
  				align-items: center;
  				justify-content: space-between;
  			}
  
  			.balls div {
  				width: 0.8em;
  				height: 0.8em;
  				border-radius: 50%;
  				background-color: #4b9e5f;
  			}
  
  			.balls div:nth-of-type(1) {
  				transform: translateX(-100%);
  				animation: left-swing 0.5s ease-in alternate infinite;
  			}
  
  			.balls div:nth-of-type(3) {
  				transform: translateX(-95%);
  				animation: right-swing 0.5s ease-out alternate infinite;
  			}
  
  			@keyframes left-swing {
  
  				50%,
  				100% {
  					transform: translateX(95%);
  				}
  			}
  
  			@keyframes right-swing {
  				50% {
  					transform: translateX(-95%);
  				}
  
  				100% {
  					transform: translateX(100%);
  				}
  			}
  
  			@media (prefers-color-scheme: dark) {
  				body {
  					background: #121212;
  				}
  			}
  		</style>
  		<div class="loading-wrap">
  			<div class="balls">
  				<div></div>
  				<div></div>
  				<div></div>
  			</div>
  		</div>
  	</div>
  	<script src="/custom/index.js"></script>
  </body>
  
  </html>
  
services.name: http://119.99.164.84:9000/favicon.ico
services.name: http://119.99.164.84:9000/favicon.ico
services.body_hash_sha1: sha1:fab79ae6a0966c694cefa7eae73ca41a34ca46cc
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T05:05:33.667844
services.banner: HTTP/1.1 200 OK
  Accept-Ranges: bytes
  Content-Length: 5625
  cache-control: public, max-age=86400
  last-modified: Sun, 20 Jul 2025 17:37:58 GMT
  vary: accept-encoding
  date:  <REDACTED>
  Content-Type: text/html;charset=UTF-8
  set-cookie: reader.session=8866390d39bc8ac62f862f38e5928c54; Max-Age=172800000; Expires=Sat, 18 Jan 2031 05:05:37 GMT; Path=/
  
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T05:05:33.667844
services.uri: http://119.99.164.84:22000/
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: Accept-Ranges
services.headers: bytes
services.key: cache-control
services.headers: public, max-age=86400
services.key: Content-Length
services.headers: 5625
services.key: last-modified
services.headers: Sun, 20 Jul 2025 17:37:58 GMT
services.key: date
services.headers: <REDACTED>
services.key: Content-Type
services.headers: text/html;charset=UTF-8
services.key: set-cookie
services.headers: reader.session=8866390d39bc8ac62f862f38e5928c54; Max-Age=172800000; Expires=Sat, 18 Jan 2031 05:05:37 GMT; Path=/
services.key: vary
services.headers: accept-encoding
services.html_tags: <title>阅读</title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=0,minimal-ui,viewport-fit=cover"> <meta name="keyword" content="阅读3,在线版"> <meta name="description" content=""> <meta name="mobile-web-app-capable" content="yes"> <meta name="apple-touch-fullscreen" content="yes"> <meta name="format-detection" content="telephone=no,email=no,address=no"> <meta name="renderer" content="webkit"> <meta name="HandheldFriendly" content="true"> <meta name="MobileOptimized" content="320"> <meta name="screen-orientation" content="portrait"> <meta name="x5-orientation" content="portrait"> <meta name="full-screen" content="yes"> <meta name="x5-fullscreen" content="true"> <meta name="browsermode" content="application"> <meta name="x5-page-mode" content="app"> <meta name="msapplication-tap-highlight" content="no"> <meta name="theme-color" content="#ffffff"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <meta name="apple-mobile-web-app-title" content="阅读"> <meta name="msapplication-TileImage" content="img/icons/msapplication-icon-144x144.png"> <meta name="msapplication-TileColor" content="#000000">
services.body: <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=0,minimal-ui,viewport-fit=cover"><meta name="keyword" content="阅读3,在线版"><meta name="description" content=""><meta name="mobile-web-app-capable" content="yes"><meta name="apple-touch-fullscreen" content="yes"><meta name="format-detection" content="telephone=no,email=no,address=no"><meta name="renderer" content="webkit"><meta name="HandheldFriendly" content="true"><meta name="MobileOptimized" content="320"><meta name="screen-orientation" content="portrait"><meta name="x5-orientation" content="portrait"><meta name="full-screen" content="yes"><meta name="x5-fullscreen" content="true"><meta name="browsermode" content="application"><meta name="x5-page-mode" content="app"><meta name="msapplication-tap-highlight" content="no"><!--[if IE]><link rel="icon" href="favicon.ico" /><![endif]--><title>阅读</title><script>// 通用加载脚本方法
        function loadScript(src, callback, async) {
          var script = document.createElement('script');
          if (async) script.async = 'async';
          script.src = src;
  
          if (callback) {
            script.onload = callback;
          }
  
          document.head.appendChild(script);
        }
  
        // 通用加载样式方法
        function loadLink(href, callback, rel, type) {
          var link = document.createElement('link');
          link.rel = rel || "stylesheet";
          link.type = type || "text/css";
          link.href = href;
  
          if (callback) {
            link.onload = callback;
          }
  
          document.getElementsByTagName("head")[0].appendChild(link);
        }
  
        // 获取单个查询参数
        function getQueryString(sVar, first) {
          return decodeURIComponent(window.location.search.replace(new RegExp('^(?:.*' + (first ? '?' : '') + '[&\\?]' + encodeURI(sVar).replace(/[\.\+\*]/g, '\\$&') + '(?:\\=([^&]*))?)?.*$', 'i'), '$1'));
        }
  
        window.onerror = function() {
          if (window.getQueryString('debug')) {
            alert(JSON.stringify(arguments));
          }
        }
  
        if (window.getQueryString('debug')) {
          window.loadScript('https://cdn.bootcdn.net/ajax/libs/vConsole/3.9.1/vconsole.min.js', function() {
            new VConsole();
          }, true);
        }
  
        if (!Function.prototype.bind) {
          Function.prototype.bind = function (oThis) {
            if (typeof this !== 'function') {
              throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
            }
  
            var aArgs = Array.prototype.slice.call(arguments, 1),
                fToBind = this,
                fNOP = function () {},
                fBound = function () {
                  return fToBind.apply(this instanceof fNOP ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments)));
                };
  
            fNOP.prototype = this.prototype;
            fBound.prototype = new fNOP();
  
            return fBound;
          };
        }</script><link href="css/index.9347d249.css" rel="prefetch"><link href="css/reader.1ebd7f35.css" rel="prefetch"><link href="css/setting.d9b851e0.css" rel="prefetch"><link href="js/index.459d9e84.js" rel="prefetch"><link href="js/index~reader.c43437ec.js" rel="prefetch"><link href="js/reader.6e871769.js" rel="prefetch"><link href="js/setting.6919980b.js" rel="prefetch"><link href="css/app.512ff41b.css" rel="preload" as="style"><link href="css/chunk-vendors.e2dbefc2.css" rel="preload" as="style"><link href="js/app.54619a3e.js" rel="preload" as="script"><link href="js/chunk-vendors.4589d111.js" rel="preload" as="script"><link href="css/chunk-vendors.e2dbefc2.css" rel="stylesheet"><link href="css/app.512ff41b.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="img/icons/favicon-16x16.png"><link rel="manifest" href="manifest.json"><meta name="theme-color" content="#ffffff"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><meta name="apple-mobile-web-app-title" content="阅读"><link rel="apple-touch-icon" href="img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="img/icons/safari-pinned-tab.svg" color="#ffffff"><meta name="msapplication-TileImage" content="img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><style>:root {
        --sat: constant(safe-area-inset-top);
        --sat: env(safe-area-inset-top);
        --sar: constant(safe-area-inset-right);
        --sar: env(safe-area-inset-right);
        --sab: constant(safe-area-inset-bottom);
        --sab: env(safe-area-inset-bottom);
        --sal: constant(safe-area-inset-left);
        --sal: env(safe-area-inset-left);
      }
      body::-webkit-scrollbar {
        display: none;
      }
      body.night-theme::-webkit-scrollbar {
        background-color: #333 !important;
      }
      html,body {
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
      }</style><body><noscript><strong>请启用浏览器的Javascript支持</strong></noscript><div id="app"></div><script src="js/flv.min.js"></script><script src="js/hls.min.js"></script><script src="js/dash.all.min.js"></script><script src="js/webtorrent.min.js"></script><script src="js/pear-player.min.js"></script><script src="js/chunk-vendors.4589d111.js"></script><script src="js/app.54619a3e.js"></script></body></html>
services.name: http://119.99.164.84:22000/img/icons/favicon-32x32.png
services.name: http://119.99.164.84:22000/img/icons/favicon-16x16.png
services.name: http://119.99.164.84:22000/img/icons/apple-touch-icon-152x152.png
services.name: http://119.99.164.84:22000/favicon.ico
services.body_hash_sha1: sha1:e3cd35b5e1d74824c7c68e3b1cd09703068278f2
services.supported_versions: HTTP/1.1 HTTP/2
[binary data, 67 values, 1,920 bytes]