浏览器及手机版本型号判断

2023-11-09

Navigator 对象:包含有关浏览器的信息,所有浏览器都支持该对象
对象属性参考:https://www.w3school.com.cn/jsref/dom_obj_navigator.asp

属性 描述
appCodeName 返回浏览器的代码名。
appMinorVersion 返回浏览器的次级版本。
appName 返回浏览器的名称。
appVersion 返回浏览器的平台和版本信息。
userAgent 返回由客户机发送服务器的 user-agent 头部的值。

userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值
各个浏览器关于userAgent属性的值:
1、谷歌
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36
2、火狐
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
3、360极速模式
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
4、IE11 360兼容模式
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Tablet PC 2.0; rv:11.0) like Gecko
5、IE浏览器10
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Tablet PC 2.0)
6、IE浏览器9
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Tablet PC 2.0)
7、IE浏览器8
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Tablet PC 2.0)
8、IE浏览器7
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Tablet PC 2.0)
9、IE浏览器5
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Tablet PC 2.0)

function myBrowsr(){
    var userAgent = navigator.userAgent.toLocaleLowerCase(); //取得浏览器的userAgent字符串并转换为小写
    //360浏览器,以往检测方式,现在360的usrAgent与谷歌返回一样,无法检测
    /*if( userAgent.indexOf("360ee") > -1 || userAgent.indexOf("360se") > -1 ){
        return "360"
    }*/
    //新检测,不确定是否100%检测出一定是360浏览器
    if( is360() ){
        return "360"
    }
    //谷歌浏览器
    if( userAgent.indexOf("chrome")>-1 && userAgent.indexOf("safari")>-1 && !is360() ){
        return "chrome"
    }
    //火狐浏览器
    if( userAgent.indexOf("firefox")>-1 ){
        return "firefox"
    }
    //欧朋浏览器
    if( userAgent.indexOf("opera")>-1 || userAgent.indexOf('opr') > -1 ){
        return "opera"
    }
    //safari浏览器
    if( userAgent.indexOf("safari")>-1 && userAgent.indexOf("chorome") === -1 && !is360() ){
        return "safar"
    }
    //IE11浏览器
    if( userAgent.indexOf("trident")>-1 && userAgent.indexOf("rv:11.0") > -1 ){
        return "ie11"
    }
    //IE浏览器
    if( userAgent.indexOf("compatible")>-1 && userAgent.indexOf("msie") > -1 ){
        return "ie"
    }
    //UC浏览器
    if( userAgent.indexOf("ucbrowser")>-1 && userAgent.indexOf("ubrowser") > -1 ){
        return "uc"
    }
    //微信浏览器
    if( userAgent.indexOf("micromessenger")>-1 ){
        return "wechat"
    }        
}
function is360(){
    var mType=navigator.mimeTypes;
    for(let i=0; i<mType.length;i++){
        if(mType[i].type.indexOf("360soft")>-1){
            return 1
        }else{
            return 0
        }
    }
}
console.log('我是'+myBrowsr()+'浏览器');
//判断系统
function myOS(){
    var userAgent = navigator.userAgent.toLocaleLowerCase(); //取得浏览器的userAgent字符串并转换为小写
    if( userAgent.indexOf( "compatible" )>-1 || userAgent.indexOf("windows")>-1 ){
        return 'windows';
    }else if( userAgent.indexOf("macintosh")>-1 && userAgent.indexOf("macintel")>-1){
        return "macOS";
    }else if( userAgent.indexOf("iphone")>-1 ){
        return "ios";
    }else if( userAgent.indexOf("android")>-1 ){
        return 'android';
    }else if(userAgent.indexOf('ipad')>-1){
        return 'ipad';
    }else{
        return "other";
    }
}
console.log('我是'+myOS()); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浏览器及手机版本型号判断 的相关文章

  • BurpSuite的Cluster Bomb模式下使用Runtime File爆破不成功解决办法——路径全英文

    在做Pikachu超级简单的第一题的时候我就跪了 抓到包发现传输的就是没有加密的用户名和密码 就想着直接对两个参数进行爆破 采用笛卡尔积的方法于是就使用Cluster Bomb模式 Positions模块介绍图 我实际抓包设置 随后对两个参
  • java.io.IOException: Connection reset by peer问题解决

    java io IOException Connection reset by peer问题解决 今天检查日志 发现 ClientAbortException java io IOException Connection reset by
  • 封神台——BurpSuite入门(改包、爆破)

    点击传送门进来看到的就是一个很简陋的网站 我们来到一个网站就先注册一下 感受一下全面的服务 一个假网做的还挺完备 点击一个产品 看到他的设计如此之烂 什么也没有居然要价5400 很多购物网站都存在着支付漏洞 于是我们抓个包试试看 首先打开B
  • Struts标签基本知识

    Struts标签基本知识 1 普通标签 控制执行的流程 1 1 控制标签 实现分支 循环等流程控制 if elseif else append generator iterator merge sort subset 1 2 数据标签 输出
  • 【CTF】CTFshow-SQL注入(持续更新)

    CTF CTFshow SQL注入 持续更新 就剩一年的大学时光了 最近也很迷茫 想找实习 又得考托福 又想提前开始毕设 假期前又要上学校安排的实训 马上还又有一门考试 事情一堆 但又感觉整天不知道自己应该做什么 在过完了我给自己安排的两个
  • Web安全公开课-XSS-前端基础

    这节课分两个部分讲 1 HTML概述 2 javascript概述 什么是HTML呢 HTML是种超文本标记语言 英文名字叫 HyperText Markup Language 超级文本标记语言是 种规范 也是一种标准 它通过标记符号来标
  • web基础学习笔记(九)之节点常用属性和方法

    节点常用属性和方法 getElementsByTagName 获取当前节点的指定标签名孩子节点 gappendChild oChildNode 添加一个子节点 oChildNode是要添加的孩子节点 属性 childNodes 获取当前节点
  • Upload-labs文件上传漏洞(MIME限制)——Pass02(详解)

    0 00 题目描述 本题要求对数据包中的MIME进行检查 0 01 MIME介绍 所以首先要搞清楚MIME在数据包的哪里 MIME是个什么 关于MIME 由百度百科可知 MIME Multipurpose Internet Mail Ext
  • Bean拷贝组件(注解驱动)方案设计与落地

    一 背景 数据流转在各层之间的过程 应当是改头换面的 字段属性数量 属性名称 一般不变 但也有重构时出现变化的情况 类型名称 普遍变化例如BO VO DTO 对于转换的业务对象 原始的做法时直接实例采用Getter与Setter方法进行逐一
  • Drools规则引擎入门学习记录

    业务开发过程中 对于某些判断性的通用规则是基于if else封装 还是基于策略模式封装 无论以上那种封装出来的方法 只能在单体软件包中共用 且不能无感部署 然而对于业务而言 可能规则改变的比较频繁 例如与营销有关的活动 会频繁的修改商品价格
  • springboot 框架学习 thymeleaf静态模板引擎实现页面跳转

    最近在深啃jvm虚拟机 主要方法是阅读 深入java虚拟机 这本书 写的很形象深入 简单易懂 今天上web课程老师讲到servlet时突然想到boot的页面跳转与数据响应 之前的springmvc在boot中也有集成 但是boot的常用页面
  • SQL注入之报错注入的一些随笔

    0x00 序言 关于报错注入的话虽然我在我之前的文章里面写了一些 但是sql注入的姿势实在是太多了 之前写过的payload不全也不系统 今天抽出时间来总结一下 ps 关于报错注入的原理和使用的基本函数我在我之前的文章 SQLI LABS修
  • 封神台——Cookie伪造目标权限(存储型XSS)

    点击传送门看到的是一个留言板 我们首先要判断是否存在XSS 于是输入一串JS代码 看是否会弹出一个内容为 zkaq 的弹窗 出现了 说明存在XSS漏洞 关于XSS漏洞的科普如下 跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代
  • 浏览器及手机版本型号判断

    Navigator 对象 包含有关浏览器的信息 所有浏览器都支持该对象 对象属性参考 https www w3school com cn jsref dom obj navigator asp 属性 描述 appCodeName 返回浏览器
  • eclipse修改文字显示大小及html乱码修改编码格式

    1 修改字体大小 2 修改编码格式 html文件出现乱码时需要修改编码格式 备注 有时候修改后还会是乱码 重启eclipse即可
  • Upload-labs文件上传漏洞(大小写绕过)——Pass05

    0 00 题目描述 真好把上一题的 htaccess文件也给黑名单限制了 与Pass04做个比较 0 01 源码分析 is upload false msg null if isset POST submit if file exists
  • 前端学习--多益

    什么是跨域 它主要解决什么问题 如果你有8个不同的css样式 整合进网站的最好方式是 如果仅需要引入一个CSS文件 则使用连接方式 如果需要引入多个CSS文件 则首先用连接方式引入一个 目录 CSS文件 这个 目录 CSS文件中再使用导入式
  • 苹果IOS手机设置BurpSuite抓包(详细步骤)

    0 01 添加BP的Proxy Listeners 点击Add添加 端口填写8080 然后选择Specific address 选手机和电脑同时在的那个IP区段 IP具体查询方式使用Win R 输入ipconfig 然后看这个 在Speci
  • Upload-labs文件上传漏洞(空格绕过)——Pass06

    0 00 题目描述 似乎可以使用Pass04文件改写 但是感觉应该不会那么简单 0 01 源码分析 is upload false msg null if isset POST submit if file exists UPLOAD PA
  • png文件格式详解【转】

    5 2 2 PNG图像文件存储结构 1 PNG文件存储结构的格式可以在http www w3 org TR REC png htm上找到定义 BMP文件总体上由两部分组成 分别是PNG文件标志和数据块 chunks 如表5 8所示 其中数据

随机推荐

  • 为什么一个mac可以对应多个ip_路由器、交换机、IP、MAC原来可以这样理解

    先理解它们能够代表着什么 数据帧 快递 二层MAC地址 你的身份证号 全球唯一 三层IP地址 你的当前的住宅地址 你随时可能会搬去其他地址住额外的 规则 一个住宅地址只能住一个人 否则会导致收发快递不正常 交换机 给你派件的快递员 但是只认
  • CTFSHOW 萌新计划web9-15

    题目地址 http ctf show 0x01 web9 乍一看别被迷惑了 这个正则是字符串中包含 system exec highlight才能执行eval if preg match system exec highlight i c
  • 如何用logging记录python实验结果?

    做python实验有时候需要打印很多信息在控制台 console 但是控制台的信息不方便回顾和保存 故而可以采用logging将信息存储起来 先新建一个文件message log 代码如下 import logging logging ba
  • Android Studio 守护进程 错误 Error:Unable to start the daemon process....

    简介 有段时间没有使用Android Studio 最近使用AS打jar包的时候 不知道什么原因 突然出现了的问题 下面也没有详细的错误信息 网上很多解决类似问题的做法都是说AS在启动Jvm时候的空间问题 然而这个问题的下划线下面是有更详细
  • 航天生物计算机作文,科幻遨游太空作文(精选6篇)

    科幻遨游太空作文 精选6篇 导语 很多人语文成绩上不去 都是因为作文分数一直提不上去 为了让您在写作文时更加简单方便 下面是小编为大家收集的科幻遨游太空作文 精选6篇 欢迎大家借鉴与参考 希望对大家有所帮助 遨游太空作文1 太空 是一个充满
  • SQL触发器

    触发器 触发器是与表有关的数据库对象 可以在 insert update delete 之前或之后 触发并执行触发器中定义的SQL语句 触发器的这种特性可以协助应用在数据库端确保数据的完整性 日志记录 数据校验等操作 使用别名 NEW 和
  • 微信小程序之用camera实现类似扫码枪连续扫码

    微信小程序之用camera实现类似扫码枪连续扫码 搜了CSDN里面的文章 除了有一篇有关微信小程序 用微信小程序里面代码实现 扫码的功能 其它都是用别的 原博文是 小程序连续扫码实现但是他只是实现了一次扫码后就不能再继续扫码了 在js代码部
  • 组件库系列四:组件封装思路

    文章目录 按钮 输入框 tabs选项卡 toast提示 Popover 遇到的问题 前面已经有按钮为例子搭建的组件库 这里记录几个组件的封装思路 持续更新 按钮 感觉涟漪效果挺有趣的 就加进来了 简单分析一下 在按钮组件中使用canvas组
  • [译文]PHP 正则表达式入门 Getting Started with PHP Regular Expressions

    PHP 正则表达式入门 Getting Started with PHP Regular Expressions 译者注 本文是面向0正则基础的phper 很多正则的高级使用都没有涉及到 仅仅是一份简单的入门 对于有基础的 可直接查看本文末
  • element的form表单中如何一行显示多el-form-item标签

    element的form表单中如何一行显示多el form item标签 效果图 HTML代码 div div
  • mysql查询两列的总和,null值处理

    mysql中需要用sum 函数计算两列或者多列的总和时 可参考以下写法 select SUM IFNULL c1 0 IFNULL c2 0 from tb mytable sum c1 c2 c3 函数是计算多列的总和 ifnull c1
  • Java项目-博客管理系统介绍

    目录 一 项目背景 二 相关技术准备 1 网络通信三要素 2 Jsp简介 3 Servlet简介 4 Tomcat服务器 三 系统需求分析 1 易用性分析 2 安全性分析 四 数据库设计和实现 1 创建数据库和相关表 2 使用JDBC连接数
  • Eclipse中Debug时,设置条件断点,运行额外代码

    目录 1 设置条件断点 2 运行额外代码 1 设置条件断点 右键断点位置 选择 Breakpoint Properties 设置条件 设置后的效果 当然 也可以直接在这里进行设置 2 运行额外代码 debug时 在Debug Shell中写
  • Java Web开发技术体系

    Course Java web 开发技术 Author 涛哥B站视频资料 千锋教育 Java Web开发视频教程 一 Java web是什么 1 1 Java web概念 Java web指的是使用Java语言进行web互联网领域项目开发的
  • 现在人工智能在教育方面的应用

    现代教育中 利用人工智能可以实现师资资源重新分配 传统教育模式中 存在严重的师资力量分配不均匀的问题 也导致了教育的不均衡 不平等 格物斯坦表示人工智能在教育方面的用途非常广泛 具体要求要因地制宜 才能发挥最大效果 当投入了人工智能教育以后
  • USB转串口CH340接线方法

    https blog csdn net wangjiaweiwei article details 49612207 USB转串口模块可以使用5V电压供电 需要将跳帽按下图安装 USB转串口模块可以使用3 3V电压供电 需要将跳帽按下图安装
  • Vue概念

    Vue 是一套用于构建用户界面的渐进式框架 自底层向上应用 Vue的核心库只关注视图层 容易入门 可以和第三方库或者已有的项目进行整合 可以做复杂的单页应用 同时与React Angular称三大主流框架 中文官网 v2 cn vuejs
  • C语言交换 a与b 的值的 3种方法

    第一种方法 给定两个整形变量的值 创建两个临时变量将两个值的内容进行交换 int a 2 int b 3 int c 0 printf 原来的 na d b d n a b c a a b b c printf 现在的 na d b d a
  • Unity中如何用代码实现场景切换

    Unity中如何用代码实现场景切换 创建场景 场景切换 Unity3D创建游戏可以这么理解 一款完整的游戏就是一个Project 项目工程 游戏中不同的地图对应的是项目下面的不同场景 Scene 一款游戏可以包含很多地图 因此一个项目工程下
  • 浏览器及手机版本型号判断

    Navigator 对象 包含有关浏览器的信息 所有浏览器都支持该对象 对象属性参考 https www w3school com cn jsref dom obj navigator asp 属性 描述 appCodeName 返回浏览器