用户代理

这里引用http://www.useragentstring.com/ 的用户代理报告来解释一下用户代理中的字段都是表示什么意思:

chrome:

Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36

firefox:

Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0

IE:

Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Geck

移动端的代理检测:

safari

userAgent:Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B440 Safari/600.1.4

android浏览器

android系统中几乎全部杂牌国产浏览器都是使用的webkit的内核,opera在新版本上也从pesto转向webkit,截取一二示意:
1、chrome(android版)
Mozilla/5.0 (Linux; Android 4.1.1; MI 2 Build/JRO03L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36

小米内置

Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; MI 2S Build/JRO03L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 XiaoMi/MiuiBrowser/2.1.1

3、mercury浏览器:
Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; MI 2S Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

4、opera浏览器
旧版:
Opera/9.80 (Android; Opera Mini/7.8.35885/35.5464; U; zh) Presto/2.8.119 Version/11.10

新版:
Mozilla/5.0 (Linux; U; Android 4.1.1; zh-CN; MI 2S Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 OPR/10.2.5.89953 Mobile Safari/534.30

windows phone:

自带IE11:

Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Nokia 520) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537

UC:

Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Nokia 520) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537 UCBrowser/4.2.1.541 Mobile

summary:

关于用户代理更多的信息,可以查看http://useragentstring.com/pages/useragentstring.php

代理检测(参考zmobile.js):

  1. var ua = function ( ua, appVersion, platform ) {
  2. return {
  3. // win系列
  4. win32 : platform === "Win32",
  5. ie : /MSIE ([^;]+)/.test( ua ),
  6. ieMobile : window.navigator.msPointerEnabled,
  7. ieVersion : Math.floor( (/MSIE ([^;]+)/.exec( ua ) || [0, "0"])[1] ),
  8. // ios系列
  9. ios : (/iphone|ipad/gi).test( appVersion ),
  10. iphone : (/iphone/gi).test( appVersion ),
  11. ipad : (/ipad/gi).test( appVersion ),
  12. iosVersion : parseFloat( (‘‘ + (/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec( ua ) || [0, ‘‘])[1])
  13. .replace( ‘undefined‘, ‘3_2‘ ).replace( ‘_‘, ‘.‘ ).replace( ‘_‘, ‘‘ ) ) || false,
  14. safari : /Version\//gi.test( appVersion ) && /Safari/gi.test( appVersion ),
  15. uiWebView : /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( ua ),
  16. // 安卓系列
  17. android : (/android/gi).test( appVersion ),
  18. androidVersion : parseFloat( "" + (/android ([0-9\.]*)/i.exec( ua ) || [0, ‘‘])[1] ),
  19. // chrome
  20. chrome : /Chrome/gi.test( ua ),
  21. chromeVersion : parseInt( ( /Chrome\/([0-9]*)/gi.exec( ua ) || [0, 0] )[1], 10 ),
  22. // 内核
  23. webkit : /AppleWebKit/.test( appVersion ),
  24. // 其他浏览器
  25. uc : appVersion.indexOf( "UCBrowser" ) !== -1,
  26. Browser : / Browser/gi.test( appVersion ),
  27. MiuiBrowser : /MiuiBrowser/gi.test( appVersion ),
  28. // 微信
  29. MicroMessenger : ua.toLowerCase().match( /MicroMessenger/i ) == "micromessenger",
  30. // 其他
  31. canTouch : "ontouchstart" in document
  32. };
  33. }( navigator.userAgent, navigator.appVersion, navigator.platform );

来自为知笔记(Wiz)

时间: 2024-10-04 08:52:11

用户代理的相关文章

完整的用户代理字符串检测脚本

完整的用户代理字符串检测脚本,包括引擎.脚本.平台.Windows操作系统.移动设备和游戏系统. 1 var client = function(){ 2 3 //呈现引擎 4 var engine ={ 5 ie: 0, 6 gecko: 0; 7 webkit: 0; 8 khtml: 0; 9 opera: 0; 10 11 //完整的版本号 12 ver: null 13 }; 14 15 //浏览器 16 var browser = { 17 //主要浏览器 18 ie: 0, 19

浏览器User-Agent(用户代理)的介绍

用户代理(User Agent)是用来表明浏览用户的身份,让网页开发者可以得知访问终端的信息.根据不同的终端发送不同的显示内容,例如桌面版和移动版发送不同的网页内容以适应屏幕和操作系统的差别(即响应式网页的理解),或者是因为不同的浏览器支持的标准不一样,这样做的目的当然是为了避免浏览器不支持的功能以及获得更好的用户体验. 随着浏览器市场的竞争愈加激烈,网页开发者会根据最流行的浏览器,设计一个用户体验最好的网站.这对其他浏览器来说是一种打击, 所以他们也会很快完善自身的缺陷,希望可以支持这些用户体

BOM之navigator对象和用户代理检测

前面的话 navigator对象现在已经成为识别客户端浏览器的事实标准,navigator对象是所有支持javascript的浏览器所共有的.本文将详细介绍navigator对象和用户代理检测 属性 与其他BOM对象的情况一样,每个浏览器中的navigator对象也都有一套自己的属性.下表列出了存在于所有浏览器中的属性和方法,以及支持它们的浏览器版本 属性 说明 appCodeName 浏览器名称[所有浏览器都返回Mozilla] userAgent 浏览器的用户代理字符串 appVersion

C# 为网络程序添加用户代理

如何为网络程序添加用户代理,本人推荐使用UrlMkSetSessionOption函数, 不过该函数有一个弱点不可以X64编译,X86编译软件才可以调用该函数 否则会一直返回!S_OK意义错误.第二呢 我建议大家在网上找找类似 http://www.proxy.com.ru/免费的代理的网站,代码上的代理是在网上找的 几日后你在使用我的代码则没有代理效果 因为代理服务器无效,所有后面 需要查阅方法的自己去找一个免费代理的服务器地址 不要说我没提醒. 我不建议大家在Wininet层使用Intern

用户代理字符串userAgent可实现的四个识别

定义 用户代理字符串:navigator.userAgent HTTP规范明确规定,浏览器应该发送简短的用户代理字符串,指明浏览器的名称和版本号.但现实中却没有这么简单. 发展历史 [1]1993年美国NCSA国家超级计算机中心发布了世界上第一款web浏览器Mosaic,该浏览器的用户代理字符串为Mosaic/0.9 [2]Netscape公司进入浏览器开发领域,将自己产品的代号定名了Mozilla(Mosaic Killer)的简写,用户代理字符串格式为Mozilla/版本号 [语言] (平台

用户代理检测与浏览器Ua详细分析

. 首页 博客园 联系我 前言:用户代理字符串与用户代理检测. 先看结论/可用代码. 浏览器市场份额现状. Mozilla Firefox. Microsoft Internet Explorer. Google Chrome. Apple Safari. Opera. 呈现引擎(浏览器内核). 国产浏览器. 判断操作系统. 随笔感想. 留言评论 返回顶部 前言:用户代理字符串与用户代理检测 “用户代理字符串”(User Agent,下文简称“Ua”)是浏览器用来标识自身信息的一串字符 现如今,

ExtJS浏览器对象模型BOM——命名空间和用户代理对象、Cookie

BOM(浏览器对象模型(BrowserObjectModel)),允许访问和操控浏览器窗口.研发者通过使用BOM,可移动窗口.更改状态栏文本.执行其它不与页面内容发生直接联系的操作. 本文将从ExtJS中以下四类服务入手: 1,命名空间 2,用户代理对象 3,Cookie 4,定时调用函数(将于下一博文详细陈述) 命名空间   ExtJS的命名空间是在window对象所提供的全局范围内建立相互独立的范围,概念上类似于Java的package. Ext.namespace("com.baidu&q

SS中的三种样式来源:创作人员、读者和用户代理

CSS中的样式一共有三种来源:创作人员.读者和用户代理,来源的不同会影响到样式的层叠方式,很多第一次学习CSS的朋友,对这三种来源可能会存在一些困惑,下面我写一下自己的理解,若有错误的地方还请指正. 首先,创作人员(author's+style)样式应该是我们最熟悉的,如果你是一个前端开发者,那么你写的那些样式就叫做创作人员样式. 然后是用户代理样式(agent's+style),用户代理也就是我们通常所说的浏览器(IE.Firefox等等),这些浏览器会提供一些默认的样式,比如IE浏览器中,一

CSS中的三种样式来源:创作人员、读者和用户代理

CSS中的样式一共有三种来源:创作人员.读者和用户代理,来源的不同会影响到样式的层叠方式. 首先,创作人员(author's+style)样式应该是我们最熟悉的,如果你是一个前端开发者,那么你写的那些样式就叫做创作人员样式. 然后是用户代理样式(agent's+style),用户代理也就是我们通常所说的浏览器(IE.Firefox等等),这些浏览器会提供一些默认的样式,比如IE浏览器中,一个纯粹由html代码构成的网页里,我们会发现超链接会带有一个蓝色的前景色,这其实就用户代理样式,借用一些插件

userAgent,JS用户代理检测——判断浏览器内核、浏览器、浏览器平台、windows操作系统版本、移动设备、游戏系统

1.识别浏览器呈现引擎 为了不在全局作用域中添加多余变量,这里使用单例模式(什么是单例模式?)来封装检测脚本.检测脚本的基本代码如下所示: 1 var client = function() { 2 var engine = { 3 ie: 0, 4 gecko: 0, 5 webkit: 0, 6 khtml: 0, 7 opera: 0, 8 9 // 具体的版本号 10 ver: null 11 }; 12 13 return { 14 engine: engine 15 } 16 }()