什么是UserAgent
顾名思义,即用户 代理,简称UA,它是一个特殊的HTTP头域,使得服务器端能够识别客户端使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。通过这个标识,用户所访问的网站可以显示不同的排版,进行不同的行为偏好设置,为用户提供更好的体验或者进行信息统计。通过修改useragent,你还可以完美的伪装:操作系统、浏览器、蜘蛛、邮件客户端、链接检查、分析器、RSS 阅读器等客户端的信息。
通过http://www.useragentstring.com/查看你的useragent,当然自己写一个web小脚本来输出useagent也是很容易的。
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
我的各浏览器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 Linux X11; Linux ppc Mac Macintosh; PPC Mac OS X Solaris X11; SunOS i86pc 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”,按下回车进入设置菜单。 响应式设计模式: 在开发者选项,响应式设计模式中,除了可以调整预览尺寸外,也可以自定义useragent 使用第三方: User Agent Switcher插件修改 | 
| Opera | 修改配置: 1.在地址栏输入“opera:config”,回车打开。 0 Default 设置中修改: 1.工具栏“Tools”->“Preferences”->“Content”->“Advenced”,点击“Manage Site Preferences”按钮。 | 
| 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
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0");
iOS
 NSString *userAgent =  @"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0";
NSDictionary *dictionary =@{@"UserAgent":userAgent};
 [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
PHP
<?php $UserAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, ‘http://xxx.com/xxx’); curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent); $data = curl_exec($curl); ?>
Curl
curl --user-agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0" --referer 'http://www.baidu.com/' -I http://www.xxx.com/
常用的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用户标识详解与应用