userAgent

我们可以通过userAgent来判断,比如检测某些关键字,例如:AppleWebKit*****Mobile或AppleWebKit,需要注意的是有些浏览器的userAgent中并不包含AppleWebKit关键字,可能会是Linux,UCBrowser等等。

1. Javascript

2. PHP

3. .NET (C#)
下面是Javascript代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

<script type="text/javascript">

/*

* 智能机浏览器版本信息:

*/

var browser={

versions:function(){

var u = navigator.userAgent, app = navigator.appVersion;

return {//移动终端浏览器版本信息

trident: u.indexOf(‘Trident‘) > -1, //IE内核

presto: u.indexOf(‘Presto‘) > -1, //opera内核

webKit: u.indexOf(‘AppleWebKit‘) > -1, //苹果、谷歌内核

gecko: u.indexOf(‘Gecko‘) > -1 && u.indexOf(‘KHTML‘) == -1, //火狐内核

mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/), //是否为移动终端

ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端

android: u.indexOf(‘Android‘) > -1 || u.indexOf(‘Linux‘) > -1, //android终端或者uc浏览器

iPhone: u.indexOf(‘iPhone‘) > -1 || u.indexOf(‘Mac‘) > -1, //是否为iPhone或者QQ HD浏览器

iPad: u.indexOf(‘iPad‘) > -1, //是否iPad

webApp: u.indexOf(‘Safari‘) == -1 //是否web应该程序,没有头部与底部

};

}(),

language:(navigator.browserLanguage || navigator.language).toLowerCase()

}

document.writeln("语言版本: "+browser.language);

document.writeln(" 是否为移动终端: "+browser.versions.mobile);

document.writeln(" ios终端: "+browser.versions.ios);

document.writeln(" android终端: "+browser.versions.android);

document.writeln(" 是否为iPhone: "+browser.versions.iPhone);

document.writeln(" 是否iPad: "+browser.versions.iPad);

document.writeln(navigator.userAgent);

</script>

下面是通过检测关键字判断是不是手机在访问的PHP代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<?php

/**

* 判断是否是通过手机访问

* @return bool 是否是移动设备

*/

public function isMobile() {

//判断手机发送的客户端标志

if(isset($_SERVER[‘HTTP_USER_AGENT‘])) {

$userAgent = strtolower($_SERVER[‘HTTP_USER_AGENT‘]);

$clientkeywords = array(

‘nokia‘, ‘sony‘, ‘ericsson‘, ‘mot‘, ‘samsung‘, ‘htc‘, ‘sgh‘, ‘lg‘, ‘sharp‘, ‘sie-‘

,‘philips‘, ‘panasonic‘, ‘alcatel‘, ‘lenovo‘, ‘iphone‘, ‘ipod‘, ‘blackberry‘, ‘meizu‘,

‘android‘, ‘netfront‘, ‘symbian‘, ‘ucweb‘, ‘windowsce‘, ‘palm‘, ‘operamini‘,

‘operamobi‘, ‘opera mobi‘, ‘openwave‘, ‘nexusone‘, ‘cldc‘, ‘midp‘, ‘wap‘, ‘mobile‘

);

// 从HTTP_USER_AGENT中查找手机浏览器的关键字

if(preg_match("/(".implode(‘|‘,$clientkeywords).")/i",$userAgent)&&strpos($userAgent,‘ipad‘) === false)

{

return true;

}

}

return false;

}

下面的jsp代码简单判断浏览器类型,如果是iphone或者android就跳转到手机版本网页:

1

2

3

4

5

6

7

8

9

10

11

<%

String ua = request.getHeader("User-Agent") ;

if (ua != null) {

if (ua.indexOf("iPhone") >-1 || ua.indexOf("iPad") >-1 || (ua.indexOf("ndroid") >-1 && ua.indexOf("WebKit") >-1)) {

response.sendRedirect("http://localhost/mobile");

return ;

}

}

%>

下面是.NET代码(C#)
在.NET下,其中一个方法是利用HttpBrowserCapabilities,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

System.Web.HttpBrowserCapabilities browser = Request.Browser;

string s = "Browser Capabilities\n"

+ "Type = " + browser.Type + "\n"

+ "Name = " + browser.Browser + "\n"

+ "Version = " + browser.Version + "\n"

+ "Major Version = " + browser.MajorVersion + "\n"

+ "Minor Version = " + browser.MinorVersion + "\n"

+ "Platform = " + browser.Platform + "\n"

+ "Is Beta = " + browser.Beta + "\n"

+ "Is Crawler = " + browser.Crawler + "\n"

+ "Is AOL = " + browser.AOL + "\n"

+ "Is Win16 = " + browser.Win16 + "\n"

+ "Is Win32 = " + browser.Win32 + "\n"

+ "Supports Frames = " + browser.Frames + "\n"

+ "Supports Tables = " + browser.Tables + "\n"

+ "Supports Cookies = " + browser.Cookies + "\n"

+ "Supports VBScript = " + browser.VBScript + "\n"

+ "Supports JavaScript = " +

browser.EcmaScriptVersion.ToString() + "\n"

+ "Supports Java Applets = " + browser.JavaApplets + "\n"

+ "Supports ActiveX Controls = " + browser.ActiveXControls

+ "\n"

+ "Supports JavaScript Version = " +

browser["JavaScriptVersion"] + "\n";

在web.config中需要在filter中进行匹配

1

2

3

4

5

<system.web> <browserCaps> <use var="HTTP_USER_AGENT" />

<filter> <case match="Windows NT 6.1"> platform=Windows7 </case> </filter>

</browserCaps> </system.web>

另外一个方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

///<summary>

/// 根据 Agent 判断是否是智能手机

///</summary>

///<returns></returns>

public static bool CheckAgent()

{

bool flag = false;

string agent = HttpContext.Current.Request.UserAgent;

string[] keywords = { "Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser" };

//排除 Windows 桌面系统

if (!agent.Contains("Windows NT") || (agent.Contains("Windows NT") && agent.Contains("compatible; MSIE 9.0;")))

{

//排除 苹果桌面系统

if (!agent.Contains("Windows NT") && !agent.Contains("Macintosh"))

{

foreach (string item in keywords)

{

if (agent.Contains(item))

{

flag = true;

break;

}

}

}

}

return flag;

}

代码解释:

1. !agent.Contains(“Windows NT”) && !agent.Contains(“Macintosh”) 排除Window 桌面系统 和 苹果桌面系统

2. “Android”, “iPhone”, “iPod”, “iPad”, “Windows Phone”, “MQQBrowser” 这些是判断智能设备Agent中的关键词

3. MQQBrowser 为 QQ 手机浏览器,QQ 手机的Agent 比较特殊,所以单独判断
各移动浏览器的http user-agent:

一、微信的http user-agent(关键词MicroMessenger)

1. Iphone(苹果)平台微信的ucweb的useragent:
Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.2

2. Android(安卓)平台微信的ucweb的useragent:1
Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255

二、UC浏览器的http user-agent(关键词UCWEB)

1. android平台:
android平台ucweb急速模式开启下ucweb浏览器useragent:
UCWEB/2.0 (Linux; U; Adr 2.3; zh-CN; MI-ONEPlus) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

android平台ucweb急速模式关闭状态下的http_user_agent:
Mozilla/5.0 (Linux; U; Android 2.3; zh-CN; MI-ONEPlus) AppleWebKit/534.13 (KHTML, like Gecko) UCBrowser/8.6.0.199 U3/0.8.0 Mobile Safari/534.13

2. iPhone 平台

iPhone 平台极速模式开启状态下ucweb浏览器useragent:
UCWEB/2.0 (iOS; U; iPh OS 4_3_2; zh-CN; iPh4) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

iPhone 平台极速模式关闭状态下 UA 示例如下:(OBUA 为自带浏览器 UA)\
OBUA UCBrowser/8.6.0.199 Mobile

3. iPad 平台
ipad平台下ucweb浏览器useragent:
Mozilla/5.0 (iPad; U; CPU OS 6_0 like Mac OS X; zh-CN; iPad2) AppleWebKit/534.13 (KHTML, like Gecko) UCBrowser/8.6.0.199 U3/0.8.0 Safari/534.13

4. windows Phone平台
WP平台下ucweb浏览器useragent:
WP平台极速模式开启状态下:(以 Nokia 900 为例)
UCWEB/2.0 (Windows; U; wds7.10; zh-CN; Nokia 900) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile

5. 诺基亚平台
诺基亚手机Symbian&Java平台ucweb浏览器useragen:
Nokia 5800 XpressMusic/UCWEB8.9.0.253/50/999

安卓QQ浏览器HD版检测的结果是:mac, Safari,这个很是变态,自己看着处理吧

3个检测浏览器User-Agent信息的网站

三、一些特别的浏览器
QQ浏览器(android)
MQQBrowser/3.6/Adr (Linux; U; 4.0.3; zh-cn; HUAWEI U8818 Build/U8818V100R001C17B926;480*800)

魅族UC浏览器(android)
JUC (Linux; U; 2.3.5; zh-cn; MEIZU MX; 640*960) UCWEB8.5.1.179/145/33232

UC浏览器(iphone)
IUC(U;iOS 5.1;Zh-cn;320*480;)/UCWEB8.8.0.212/42/997

Opera mobile(android)
Opera/9.80 (Android 4.0.3; Linux; Opera Mobi/ADR-1210241554) Presto/2.11.355 Version/12.10

Opera mini(iphone)
Opera/9.80 (iPhone; Opera Mini/7.0.5/28.2690; U; zh) Presto/2.8.119 Version/11.10

三个在线网站,通过手机浏览器就可以在线检测

1. http://whatsmyuseragent.com/

2. http://whatsmyua.com/

3. http://www.useragentstring.com/

时间: 2024-11-05 15:07:24

userAgent的相关文章

各种浏览器的user-agent和

PC端的UserAgent safari 5.1 – MAC User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50 safari 5.1 – Windows User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleW

常见的User-Agent及免费代理IP网站

常见的User-Agent: 1.Android Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML,

不同浏览器的userAgent

一.IE浏览器 //IE6 "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" //IE7 "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" //IE8 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.5

navigator.userAgent 取值都带有Mozill的原因。看完我笑了

最早的时候有一个浏览器叫NCSA Mosaic,把自己标称为NCSA_Mosaic/2.0 (Windows 3.1),它支持文字显示的同时还支持图片,于是Web开始好玩起来. 然后出现了一个新的网页浏览器,"Mozilla",其实就是"Mosaic终结者"的意思,这搞的Mosaic很不爽,(毕竟Mosaic出道早,江湖老),新浏览器最后正式公布的名称是Netscape,它把自己标称为Mozilla/1.0 (Win3.1),更好玩了.Netscape支持框架显示,

Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫

从Apache2.2.X到Apache2.4.X,在配置上稍微有点不同,需要特别注意.现在记录下关于访问控制的配置. 经过苦苦搜索,终于配置成功.参考了这篇文章:http://www.cnblogs.com/leoyu/p/apache24_use_require_for_access_control_by_ip_and_useragent.html 关于Location配置的灵感,是从这篇文章看到的:http://www.bubuko.com/infodetail-336400.html 上文

Navigator与UserAgent笔记

关于Navigator与UserAgent笔记 1.Navigator笔记 Navigator对象主要是包含有关客户端浏览器的一些信息,Navigator对象是由JavaScript runtime engine自动创建的,但是目前没有针对于navigator对象的公开标 准,不过目前所有浏览器都支持该对象. 目前我所接触到的业务都是根据这些属性的不同区分不同的入口,比如要区分是IOS还是Android客户端进行访问的,或者是区分是否是微信访问的等等. 2.UserAgent userAgent

python请求服务器时如何隐藏User-Agent

本文结合上一篇文章“python利用有道翻译实现“语言翻译器”的功能”的实现代码,对其进行加工,实现请求服务器时隐藏User-Agent. python实现隐藏User-Agent的一般做法有两种: (1)在request对象生成之前(下面例子中的req),通过一个字典类型的head,将其作为参数传入urllib.request.Request(url, data, head)中: (2)在request对象生成之后(下面例子中的req),通过add_header()方法来实现. import

Delphi下获取IE的UserAgent的方法

方法一:使用SHDocVw, MSHtml单元提供的一些方法利用浏览器的特性来获取. uses SHDocVw, MSHtml; function GetUserAgent: string;var  Doc: IHTMLDocument2;  win: IHTMLWindow2;  wb: TWebBrowser;begin  Result := '';  try    wb := TWebBrowser.Create(nil);    try      wb.Navigate('about:b

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

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

IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题

你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6.7.8.9下都跑的好好的,唯独到了IE10.11这些高版本浏览器就不行了?好吧,这个问题码农连续2天内遇到了2次.那么,我们就来看看,这个问题的前因后果. 先说下这2次的使用场景,一次是在某页面中,先存Cookie,然后再入库记录相关数据,但是发布到生产环境后,入库操作没有发生:后来通过打印日志发现问题卡在这里: if (Request.Browser.Cookies) 也就是说,在客户端是IE10的环境下,这里返回Fa