User Agent

Всё о User Agent браузеров — только факты=)

Краткая история
пересказ с хабра с необходимыми уточнениями.

Самый первый:
NCSA Mosaic — NCSA_Mosaic/2.0 (Windows 3.1)

Mozilla — внутреннее кодовое имя с первой версии Netscape Navigator:
Netscape Navigator — Mozilla/1.0 (Win3.1)

Первая версия:
Microsoft Internet Explorer/Version (Platform), например Microsoft Internet Explorer/4.40.308 (Windows 95)
Следуюшие — для совместимости с Netscape Navigator:
Internet Explorer — Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)

На движке Gecko:
Mozilla — Mozilla/5.0 (compatible; Windows NT 5.0; EN-US; RV: 1.1) Gecko/20020826
Firefox — Mozilla/5.0 (compatible; Windows NT 5.1; SV-SE; RV: 1.7.5) Gecko/20041108 Firefox/1.0
Camino — Mozilla/5.0 (compatible; PPC Mac OS X Mach-O; EN-US; RV: 1.7.2) Gecko/20040825 Camino / 0.8.1
SeaMonkey — Mozilla/5.0 (compatible; Windows NT 5.1; DE; RV: 1.8.1.8) Gecko/20071008 SeaMonkey/1.0
Совместим с Gecko:
Konqueror — Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)

Opera с выбором совместимости:
Opera (совместимая) — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51, или Mozilla/5.0 (Windows NT 6.0; U; EN; RV: 1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51
Opera (собственно Opera) — Opera/9.51 (Windows NT 5.1; EN)

Для совместимости с KHTML и WebKit:
Safari — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5

Для совместимости с Safari:
Google Chrome — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

Итог: таким образом, Chrome использовал WebKit, и притворился, что Safari, и WebKit притворился, что он KHTML, и KHTML притворился Gecko, а все браузеры притворялись Mozilla, и окончательно запутался юзер-агент, став практически бесполезным.

Пути подделки User Agent
в разных браузерах, вкратце для общего представления.

Internet Explorer
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent — правый клик — New — String Value
default) = «Mozilla/4.0»
Compatible = compatible
Version = версия браузера
Platform = версия Windows

Opera
1. Для всех сайтов: opera:config — меняем Spoof UserAgent ID. Не работает в последних версиях
2. Для отдельных сайтов: правый клик — Настройки для сайта — Сеть — Идентификация браузера
Представляться как Opera
Представляться как Mozilla
Представляться как Internet Explorer
Маскироваться под Mozilla
Маскироваться под Internet Explorer
В последних двух полностью скрывается. В последнем — меняет при необходимости ОС на Windows.
3. Правка Opera.dll

Firefox
1. about:config — в фильтре (сверху) general.useragent — правый клик — general.useragent.override — Строка — ввести User Agent
2. Использовать плагины, например, User Agent Switcher

Google Chrome
1. запуск с опцией -user-agent.
2. ярлык Google Chrome — Объект — «C:\Documents and Settings\ВашПользователь\Local Settings\Application Data\Google\Chrome\Application\chrome.exe» ‘-user-agent=User Agent’
3. Настройки — Инструменты — Инструмента разработчика — в правом нижнем углу шестерёнка Settings — Overrides — User Agent

Safari
Alt — Правка — Настройки — Дополнения — Показывать меню «Разработка» в строке меню
Alt — Разработка — Пользовательский агент
В 5.1.7 возможен выбор Safari Mac и Windows, Safari iOS, IE 7.0, 8.0, 9.0, Firefox Mac и Windows, Opera Mac и Windows и Другой.

Кроме того, для всех браузеров есть возможность использовать произвольный User Agent.

Искажение совместимостью

В Internet Explorer 8, 9 и 10 при изменении на просмотр в режиме совместимости (Сервис — Просмотр в режиме совместимости), User Agent изменяется на MSIE 7.0.
Определить истинную версию браузера можно по Trident: Trident/5.0 Internet Explorer 9, Trident/4.0 Internet Explorer 8, Trident/6.0 Internet Explorer 10 и Trident/7.0 (возможно) Internet Explorer 11.

При запуске в режиме совместимости с более ранней ОС искажается данные ОС в User Agent.
Справедливо для всех браузеров, кроме Internet Explorer, для которго пункт меню недоступен (по крайней мере, для 6.0 и выше).

Варианты User Agent

Internet Explorer
Internet Explorer 1.0: Microsoft Internet Explorer/Version (Platform), например Microsoft Internet Explorer/4.40.308 (Windows 95). где Version: Версия Windows, так как IE изначально предполагалось включать в поставку вместе с Windows 95
Internet Explorer 2.x и старше: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)

Opera
Opera до v.12.16:
Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.16
маскироваться под Firefox — Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0
маскироваться под IE — Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
представляться как Firefox — Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.16
представляться как IE — Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64) Opera 12.16
Оpera 15.x и выше:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.100

Firefox
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0

Chrome
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36

Safari
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2

Список ОС
всех возможных

Internet Explorer
Windows 3.1 (включая Windows NT 3.x)
Windows 95
Windows 98
Windows 98; Win 9x 4.90: Windows Millennium Edition (Windows Me)
Windows NT
Windows NT 4.0
Windows NT 5.0: Windows 2000
Windows NT 5.01: Windows 2000, Service Pack 1 (SP1)
Windows NT 5.1: Windows XP
Windows NT 5.2; WOW64: Windows XP 64-bit и Windows Server 2003 64-bit
Windows NT 5.2: Windows Server 2003
Windows NT 6.0: Windows Vista и Windows Server 2008
Windows NT 6.0; WOW64: Windows Vista 64-bit и Windows Server 2008 64-bit, IE 32-bit
Windows NT 6.0; Win64: Windows Vista 64-bit и Windows Server 2008 64-bit, IE 64-bit
Windows NT 6.1: Windows 7
Windows NT 6.1; WOW64: Windows 7 64-bit и Windows Server 2008 R2, IE 32-bit
Windows NT 6.1; Win64: Windows 7 64-bit и Windows Server 2008 R2, IE 64-bit
Windows NT 6.2: Windows 8
Windows NT 6.2; WOW64: Windows 8 64-bit и Windows Server 2012, IE 32-bit
Windows NT 6.2; Win64: Windows 8 64-bit и Windows Server 2012, IE 64-bit
Windows NT 6.2; ARM: Windows RT
Windows NT 6.3: Windows 8.1
Windows NT 6.3; WOW64: Windows 8.1 64-bit, IE 32-bit
Windows NT 6.3; Win64: Windows 8.1 64-bit, IE 64-bit
Windows CE: Windows CE and Windows Mobile

Opera
Windows 95: Windows 95 (используется в Opera, притворяется IE)
Windows 98: Windows 98 (используется в Opera, притворяется IE)
Windows ME: Windows ME (используется в Opera, притворяется IE)
Windows NT 4.0: Windows NT 4.0 (используется в Opera, притворяется IE)
Windows NT 5.0: Windows 2000
Windows 2000: Windows 2000
Windows NT 5.1: Windows XP (используется в Opera, притворяется IE)
Windows XP: Windows XP
Windows NT 6.0: Windows Vista
Windows NT 6.0; WOW64: Windows Vista 64-bit, Opera 32-bit
Windows NT 6.0; Win64: Windows Vista 64-bit, Opera 64-bit
Windows NT 6.1: Windows 7
Windows NT 6.1; WOW64: Windows 7 64-bit, Opera 32-bit
Windows NT 6.1; Win64: Windows 7 64-bit, Opera 64-bit
Windows NT 6.2:  Windows 8
Windows NT 6.2; WOW64: Windows 8 64-bit, Opera 32-bit [1]
Windows NT 6.2; Win64: Windows 8 64-bit, Opera 64-bit [1]
Windows NT 6.3: Windows 8.1
Windows NT 6.3; WOW64: Windows 8.1 64-bit, Opera 32-bit [1]
Windows NT 6.3; Win64: Windows 8.1 64-bit, Opera 64-bit [1]

FF
Win3.11: Windows 3.11
Win95: Windows 95
Win98: Windows 98
Win 9x 4.90: Windows Me
WinNT3.51: Windows NT 3.51
WinNT4.0: Windows NT 4.0
Windows NT 5.0: Windows 2000
Windows NT 5.1: Windows XP (за исключением XP Professional x64 Edition)
Windows NT 5.2: Windows XP Professional x64 Edition и Windows Server 2003
Windows NT 6.0: Windows Vista и Windows Server 2008
Windows NT 6.0; WOW64: Windows Vista и Windows Server 2008 R2, Firefox 32-bit [1]
Windows NT 6.0; Win64: Windows Vista и Windows Server 2008 R2, Firefox 64-bit [1]
Windows NT 6.1: Windows 7 и Windows Server 2008 R2
Windows NT 6.1; WOW64: Windows 7 и Windows Server 2008 R2, Firefox 32-bit
Windows NT 6.1; Win64: Windows 7 и Windows Server 2008 R2, Firefox 64-bit
Windows NT 6.2: Windows 8
Windows NT 6.2; WOW64: Windows 8 64-bit и Windows Server 2012, Firefox 32-bit
Windows NT 6.2; Win64: Windows 8 64-bit и Windows Server 2012, Firefox 64-bit
Windows NT 6.3: Windows 8.1
Windows NT 6.3; WOW64: Windows 8.1 64-bit, Firefox 32-bit [1]
Windows NT 6.3; Win64: Windows 8.1 64-bit, Firefox 64-bit [1]
Windows CE 4.21: Windows Mobile 2003 (м.б. другие цифры, например Windows CE 5.1)

Google Chrome [2][3]
Windows NT 5.0: Windows 2000
Windows NT 5.1: Windows XP
Windows NT 5.2; WOW64: Windows XP 64-bit
Windows NT 6.0: Windows Vista
Windows NT 6.1: Windows 7
Windows NT 6.1; WOW64: Windows 7 64-bit
Windows NT 6.2: Windows 8
Windows NT 6.2; WOW64: Windows 8 64-bit
Windows NT 6.3: Windows 8.1 [1]
Windows NT 6.3; WOW64: Windows 8.1 64-bit [1]

Safari [4][5]
Windows NT 5.0: Windows 2000
Windows NT 5.1: Windows XP
Windows NT 6.0: Windows Vista
Windows NT 6.1: Windows 7
Windows NT 6.2: Windows 8 [1]
Windows NT 6.3: Windows 8.1 [1]

Примечания
[1] — существование не доказано, но по логике должны быть
[2] — официально поддерживается начиная с Windows XP SP2
[3] — Обозначения Win64 нет
[4] — официально поддерживается первая версия, выпущенная под Windows (Safari 3.0) начиная с Windows XP и Vista. Последняя версия под Windows 5.1.7 точно поддерживает Windows 7 и Windows 7 64-bit
[5] — Обозначений WOW 64 и Win64 нет
Opera, Chrome и Safari не проверялись на серверных Windows

64-bit версии

Internet Explorer
Начиная с 9.0.
Opera
Была только в версии 12.
Firefox
Начиная с 4.0, официально разработка Windows прекращена. Однако выходят английские ежечасные сборки (не релизы).
Google Chrome
Существует. Версия, с которой появилось, неизвестна.
Safari
64-bit под Windows не существует.

Задача

Возникла проблема правильно распознать User Agent браузеров.
К счастью, только в Windows и только 6 основых. Причем JavaScript использовать нне рекомендовалось (не спрашивайте, почему).

Алгоритм определения

+ строка присутствует, — отсутствует (строка без кавычек).
Условия необходимые и достаточные. Не работает, если браузер полностью мимикрирует под другой браузер. Для более точного определения необходимо использовать JavaScript.
Порядок проверки имеет смысл и важен.
1. + «Opera» — Opera (версии 12.16 и ниже)
2. + «/OPR» — Opera (версии 15.x и выше)
3. + «MSIE» и — «Opera» — Internet Explorer (версии 2.x и выше)
3.1. Для Internet Explorer 8.x и выше — проверяем Trident
4. «; rv:» — Firefox
5. + «Chrome» — «Safari» — Chrome
6. — «Chrome» + «Safari» — Safari
7. Неопознанные.

Вид версий браузеров (без кавычек):
Internet Explorer
» (compatible; MSIE 6.0; »
Opera
» Version/11.01″ (версии 12.16 и ниже, представляется как Opera)
» Opera 12.16″ (версии 12.16 и ниже, представляется как Firefox или Internet Explorer)
» OPR/15.0″ (версии 15.x и выше) (Цифры после версии являются внутренними идентификаторами и номером сборки)
Firefox
» Firefox/21.0″
Google Chrome
» Chrome/29.0.1547.57 » (оставляем 29.0)
Safari
» Version/5.1.7 «

Добавить комментарий