最新消息:iOS编程开发交流群(6906921) ,Mac.Cocoa开发交流群(7758675) 欢迎iOS/macOS开发编程爱好及学习者加入!

UserAgent用户标识详解与应用

iOS 天狐 99642浏览 0评论

什么是UserAgent

顾名思义,即用户 代理,简称UA,它是一个特殊的HTTP头域,使得服务器端能够识别客户端使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。通过这个标识,用户所访问的网站可以显示不同的排版,进行不同的行为偏好设置,为用户提供更好的体验或者进行信息统计。通过修改useragent,你还可以完美的伪装:操作系统、浏览器、蜘蛛、邮件客户端、链接检查、分析器、RSS 阅读器等客户端的信息。

通过http://www.useragentstring.com/查看你的useragent,当然自己写一个web小脚本来输出useagent也是很容易的。

我的各浏览器useragent:

火狐useragent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0

Safari:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12

Chrome:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36

UserAgent 用途

  • 信息统计
  • 服务器针对不同useragent显示或隐藏不同内容,电脑浏览器与安卓与iOS移动设备显示不同效果。
  • 客户端通过修改useragent来模拟其他浏览环境达到目的,比如很多不友好的网站只能使用ie进行访问,但是很多mac用户并没有ie,电脑访问wap网页。
  • 客户端爬虫伪装,常常可以与referer配合使用
  • 服务端使用useragent进行识别是否是用户操作,防止机器重复操作。当然还需要增加其他判断,否则很容易被模拟伪装
  • 为不同的搜索引擎蜘蛛展示不同的内容

UserAgent 含义剖析

标准格式为:      浏览器标识  (操作系统标识; 加密等级标识; 浏览器语言)    渲染引擎标识    版本信息

浏览器标识 由于很多网站在进行 UA 检测的时候忽略了两位数版本号,所以可能造成 浏览器及之后版本收到糟糕的页面,因此自 浏览器 10 之后的版本中浏览器标识项固定为 “浏览器”,在 UA 字串尾部添加真实版本信息。
操作系统标识 FreeBSD

X11; FreeBSD (version no.) i386
X11; FreeBSD (version no.) AMD64

Linux

X11; Linux ppc
X11; Linux ppc64
X11; Linux i686
X11; Linux x86_64

Mac

Macintosh; PPC Mac OS X
Macintosh; Intel Mac OS X

Solaris

X11; SunOS i86pc
X11; SunOS sun4u

Windows:

Windows

加密等级标识 N: 表示无安全加密
I: 表示弱安全加密
U: 表示强安全加密
浏览器语言 在浏览器中设置的指定的语言或者系统的语言。
渲染引擎 Presto/版本号,WebKit/版本号,Gecko/版本号
版本信息 显示 浏览器 真实版本信息,格式为: Version/版本号,Chrome/ChromeVersion Safari/SafariVersionChrome

UserAgent 修改

修改useragent的方式有很多,但是万变不离其宗。大体上有以下几类修改方式。

注册表修改

“HKEY_CURRENT_USER”Software”Microsoft”Windows”CurrentVersion”Internet Settings”5.0″User Agent”Post Platform”
“HKEY_LOCAL_MACHINE”SOFTWARE”Microsoft”Windows”CurrentVersion”Internet Settings”User Agent”Post Platform”
“HKEY_LOCAL_MACHINE”SOFTWARE”Microsoft”Windows”CurrentVersion”Internet Settings”5.0″User Agent”Post Platform”

如要修改IE的UserAgent为FireFox的,可以这么做:
UserAgent的默认值改为”Firefox”,同时在Post Platform下面新建字符串值”Firefox”=””,注意修改后需重启IE。

浏览器修改

浏览器类型 修改方法
Firefox 修改配置:

在地址栏输入“about:config”,按下回车进入设置菜单。
找到“general.useragent.override”,如果没有这一项,则点右键“新建”->“字符串”,输入这个字符串。
将其值设为自己想要的UserAgent。

响应式设计模式:

在开发者选项,响应式设计模式中,除了可以调整预览尺寸外,也可以自定义useragent

使用第三方:

User Agent Switcher插件修改

Opera 修改配置:

1.在地址栏输入“opera:config”,回车打开。
2.找到“User Agent”点开,里面的“Spoof UserAgent ID”设置想要的值,范围1-5。

0 Default
1 Opera
2 Mozilla, Opera detectable
3 Internet Explorer, Opera detectable
4 Mozilla, Opera hidden
5 Internet Explorer, Opera hidden

设置中修改:

1.工具栏“Tools”->“Preferences”->“Content”->“Advenced”,点击“Manage Site Preferences”按钮。
2.点击“Add”按钮,在弹出的窗口中“Site”填入“*”,“Network”选项卡中选择浏览器ID。具体对应的ID同上。

Maxthon 工具栏“工具”->“遨游设置中心”->“高级选项”,勾选“自定义 UserAgent 字符串”,下面写上自己的UserAgent记可。保存设置后重启Maxthon生效。
Chrome 早期的Chrome直接可以再开发者模式修改,担心最新版本已经去掉。只能用User Agent Switcher插件可视化修改了。

启动参数

启动时加上参数:-user-agent="UserAgent"

可以在Windows的【开始】–>【运行】中输入以下命令

chrome.exe --user-agent="User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0"

或者Google Chrome快捷方式->右键"属性"->选项卡"快捷方式"->目标,在chrome.exe后追加-user-agent="UserAgent"

Safari 1.菜单栏“Preferences/首选项”->“Advanced/高级”,勾选“Show Develop menu in menu bar/在菜单栏中显示“开发”菜单”。
2.菜单栏会多出一项“Develop/开发”,通过里面的“User Agent/用户代理”Safari默认提供了些,可以点击其他输入自己的useragent。

程序代码强制设置

java

iOS

PHP

Curl

常用的UserAgent

Android

Name User Agent
Nexus 7 (Tablet) 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
Samsung Galaxy S3 (Handset) Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Samsung Galaxy Tab (Tablet) Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

Firefox

Name User Agent
Firefox on Android Mobile Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0
Firefox on Android Tablet Mozilla/5.0 (Android; Tablet; rv:14.0) Gecko/14.0 Firefox/14.0
Firefox on Mac Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0
Firefox on Ubuntu Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20130331 Firefox/21.0
Firefox on Windows Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0

Google Chrome

Name User Agent
Chrome on Android Mobile Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19
Chrome on Android Tablet Mozilla/5.0 (Linux; Android 4.1.2; Nexus 7 Build/JZ054K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19
Chrome on Mac Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36
Chrome on Ubuntu Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/27.0.1453.93 Chrome/27.0.1453.93 Safari/537.36
Chrome on Windows Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36
Chrome on iPhone Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/27.0.1453.10 Mobile/10B350 Safari/8536.25

Internet Explorer

Name User Agent
Internet Explorer 6 Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 5.2)
Internet Explorer 7 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Internet Explorer 8 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)
Internet Explorer 9 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Internet Explorer 10 Mozilla/5.0 (compatible; WOW64; MSIE 10.0; Windows NT 6.2)

Opera

Name User Agent
Opera on Mac Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.9.168 Version/11.52
Opera on Windows Opera/9.80 (Windows NT 6.1; WOW64; U; en) Presto/2.10.229 Version/11.62

Other

Name User Agent
BlackBerry - Playbook 2.1 Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+
MeeGo - Nokia N9 Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13

Safari

Name User Agent
Safari on Mac Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
Safari on Windows Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
Safari on iPad Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
Safari on iPhone Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3

Spider / Bot

Name User Agent
BingBot (Bing's spider) Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
Googlebot (Google's spider) Googlebot/2.1 (+http://www.googlebot.com/bot.html)
Slurp! (Yahoo's spider) Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)

Windows Phone

Name User Agent
Windows Phone 7 Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; LG; GW910)
Windows Phone 7.5 Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917)
Windows Phone 8 Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)

iOS

Name User Agent
iPad Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
iPhone Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
iPod Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A101a Safari/419.3

转载请注明:天狐博客 » UserAgent用户标识详解与应用

微信 OR 支付宝 扫描二维码
为天狐 打赏
非常感谢你的支持,哥会继续努力!
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址