浏览器内核版本检测页面

756 阅读2分钟

一个网页

有时候想知道自己手机的浏览器版本或者微信的浏览器版本,于是上网找了下,找到一个浏览器内核版本检测页面:ie.icoa.cn/。非常简单,没什么复杂的功能。

PC

image.png

手机企业微信浏览器

9d2fa0c63a026b432dd97d2358a0db85.jpg

ChatGPT开发

看着这个页面不复杂,就让ChatGPT帮我写了一个,把它放在CDN上了:cdn.uino.cn/deno/ua.htm… image.png

交流信息:shareg.pt/r6ovSUv

最终代码176行,有需要的自取:

<!DOCTYPE html>
<html>

<head>
  <title>浏览器信息检测</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      padding: 20px;
    }

    h1 {
      margin-bottom: 20px;
    }

    #result {
      border: 1px solid #ccc;
      padding: 20px;
      background-color: #f5f5f5;
    }

    @media screen and (max-width: 480px) {

      /* 在小屏幕设备上进行样式调整 */
      body {
        padding: 10px;
      }

      h1 {
        font-size: 24px;
      }

      #result {
        padding: 10px;
      }
    }
  </style>
</head>

<body>
  <h1>浏览器信息检测</h1>
  <div id="result"></div>

  <script>
    function detectBrowserEngine() {
      var userAgent = navigator.userAgent.toLowerCase();
      var engine = "";

      if (userAgent.indexOf("trident") !== -1) {
        engine = "Trident";
      } else if (userAgent.indexOf("edge") !== -1) {
        engine = "EdgeHTML";
      } else if (userAgent.indexOf("webkit") !== -1) {
        engine = "WebKit";
      } else if (userAgent.indexOf("gecko") !== -1 && userAgent.indexOf("like gecko") === -1) {
        engine = "Gecko";
      } else if (userAgent.indexOf("presto") !== -1) {
        engine = "Presto";
      } else if (userAgent.indexOf("iphone") !== -1 || userAgent.indexOf("ipad") !== -1 || userAgent.indexOf("ipod") !== -1) {
        return "iOS";
      } else if (userAgent.indexOf("android") !== -1) {
        return "Android";
      } else if (userAgent.indexOf("windows phone") !== -1 || userAgent.indexOf("windows mobile") !== -1) {
        return "Windows Phone";
      } else {
        return "Unknown";
      }

      return engine;
    }

    function getIPAddress() {
      return fetch('https://api.ipify.org?format=json')
        .then(response => response.json())
        .then(data => data.ip)
        .catch(error => {
          return Promise.reject(error);
        });
    }

    function getIPDetails(ip) {
      return fetch('https://ipapi.co/' + ip + '/json/')
        .then(response => response.json())
        .then(data => {
          data.ip = ip;
          return data;
        })
        .catch(error => {
          return Promise.reject(error);
        });
    }

    function formatDateTime(date) {
      var year = date.getFullYear();
      var month = String(date.getMonth() + 1).padStart(2, '0');
      var day = String(date.getDate()).padStart(2, '0');
      var hours = String(date.getHours()).padStart(2, '0');
      var minutes = String(date.getMinutes()).padStart(2, '0');
      var seconds = String(date.getSeconds()).padStart(2, '0');

      return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
    }

    function displayBrowserInfo() {
      var resultElement = document.getElementById("result");

      // 获取浏览器内核和版本
      var engine = detectBrowserEngine();
      var version = navigator.appVersion;

      // 获取操作系统和位数
      var os = navigator.platform;
      var bit = detectOSBit();

      // 获取完整用户代理字符串
      var ua = navigator.userAgent;

      // 获取访问者IP地址
      getIPAddress()
        .then(ip => {
          return getIPDetails(ip);
        })
        .then(details => {
          var address = [details.country, details.regionName, details.city].filter(Boolean).join(", ");

          resultElement.innerHTML = "<strong>操作系统:</strong>" + os + "(" + bit + ")<br>"
            + "<strong>浏览器内核:</strong>" + engine + "<br>"
            + "<strong>版本信息:</strong>" + version + "<br>"
            + "<strong>完整代码(UA):</strong>" + ua + "<br>"
            + "<strong>来访IP:</strong>" + details.ip + "<br>"
            + "<strong>所属地址:</strong>" + address + "<br>"
            + "<strong>时间:</strong>" + formatDateTime(new Date());
        })
        .catch(error => {
          resultElement.innerHTML = "<strong>操作系统:</strong>" + os + "(" + bit + ")<br>"
            + "<strong>浏览器内核:</strong>" + engine + "<br>"
            + "<strong>版本信息:</strong>" + version + "<br>"
            + "<strong>完整代码(UA):</strong>" + ua + "<br>"
            + "<strong>无法获取来访IP</strong><br>"
            + "<strong>时间:</strong>" + formatDateTime(new Date());
        });
    }

    function detectOSBit() {
      var userAgent = navigator.userAgent.toLowerCase();
      var osBit = "";

      if (userAgent.indexOf("macintosh") !== -1) {
        if (userAgent.indexOf("intel") !== -1) {
          osBit = "64位";
        } else {
          osBit = "32位";
        }
      } else if (userAgent.indexOf("windows") !== -1) {
        if (userAgent.indexOf("wow64") !== -1 || userAgent.indexOf("win64") !== -1) {
          osBit = "64位";
        } else {
          osBit = "32位";
        }
      } else if (userAgent.indexOf("linux") !== -1) {
        if (userAgent.indexOf("x86_64") !== -1 || userAgent.indexOf("x86-64") !== -1 || userAgent.indexOf("amd64") !== -1) {
          osBit = "64位";
        } else {
          osBit = "32位";
        }
      }


      return osBit;
    }

    window.onload = displayBrowserInfo;
  </script>
</body>

</html>