Содержание

С чем едят UserAgent / Хабр


Для начала, конечно, стоило рассказать зачем едят этот самый «пользовательский агент». Ну или, вообще, начать с того что же это за агент такой. (Кстати, никто не знает какой-нибудь славянско-православный перевод этого термина?)Но рассчитывая, что хабра юзер либо уже знает и использует useragent либо ему это не нужно, я бы не хотел останавливаться на предисловиях. И так, мой совет — употребляйте useragent с регулярными выражениями!

Конечно, тебе свойственно регулярно употреблять выражения, %username%, но они другие и для души, а я о regex. Одной из основных задач в моей работе, является правильное определение возможностей устройства и браузера конечного пользователя. Так как основной упор мы делаем на мобильные устройства (сотовые телефоны), то их я и возьму в пример. В отличие от пользователей обычных компьютеров, пользователи мобильных устройств жёстко и жестоко ограничены в разрешении экрана, возможностях браузера и т.д. У нас имеется небольшая база данных собранная и автоматически обновляемая с помощью UAProf и Wurfl. Но заголовки агентов (useragent header) постоянно изменяются и количество различий постоянно растёт. О том чтобы делать поиск очередного устройства проверкой агента один к одному не может идти и речи, но как то же надо искать. Поэтому мы стали разбираться с устройством useragent и что из него можно выжать.

Ингредиенты

Стандарты и формат — как обычно никто их не соблюдает. Формат useragent изменяется от производителя к производителю и от серии к серии. К тому же большинство сотовых операторов любят переписывать заголовки.
Основные блоки должны быть такие:
устройство/версия браузер/версия (поддерживаемые стандарты и технологии).

Первый же пример sonyericssonk530i/r6bc browser/netfront/3.3 profile/midp-2.0 configuration/cldc-1.1 как бы говорит нам, что скобки ожидать не приходится, а второй пример mozilla/5.0 (symbianos/9.4; u; series60/5.0 nokia5800d-1/21.0.025; profile/midp-2.1 configuration/cldc-1.1 ) applewebkit/413 (khtml, like gecko) safari/413 мягко намекает, что и порядок никто соблюдать не будет. Но всё же мне важно знать, что разные агенты появляются у одного и того же устройства, например nokia n95:

  • mozilla/5.0 (symbianos/9.2; u; series60/3.1 nokian95/12.0.013; profile/midp-2.0 configuration/cldc-1.1 ) applewebkit/413 (khtml, like gecko) safari/413
  • mozilla/5.0 (symbianos/9.2; u; series60/3.1 nokian95/31.0.017; profile/midp-2.0 configuration/cldc-1.1 ) applewebkit/413 (khtml, like gecko) safari/413 [en-us]
  • mozilla/5.0 (symbianos/9.2; u; series60/3.1 nokian95/30.0.015; profile/midp-2.0 configuration/cldc-1.1 )
  • mozilla/5.0 (symbianos/9.2; u; series60/3.1 nokian95_8gb/30.0.018; profile/midp-2.0 configuration/cldc-1.1 ) applewebkit/413
  • mozilla/5.0 series60; nokian95;

Рецепт

Однако, как можно заметить кое какая логика есть. После слеша (/) идёт версия — динамическая часть, которая особой роли не играет. Обязательно присутствует указание на браузер. Разделение токенов с помощью пробела и/или точки с запятой.
Покрутив логи мы обнаружили много мусора в заголовках агента, поэтому первым шагом стала стандартизация и выделение сегментов. Получились вот такие полезности:

  1. Выбираем то, что действительно useragent: ([[(]?[a-z0-9._+;]\s?[/\-;:\\,*\s]*[)\]]?\s?)*
  2. Определяем токен браузера: ((iemobile|kbrowser)\s[0-9.]+)|((up(\.link)?|netfront|obigo|opera\s?(mini|mobile)?|deckit|safari|(apple)?webkit|mozilla|openwave)/[0-9\.a-z\-]+\+?)|(browser/[a-z\-0-9]+/?[0-9\.a-z\-]+)|([a-z\.-]+browser[a-z\.-]*(/[0-9\.a-z\-]+)?)
  3. Определяем профиль и конфигурацию: (((profile|configuration|java(platform)?)/[a-z]+-?)|((cldc|midp|wap)[\s\-]?))[0-9\.-a-z]+
  4. Язык: ((?<=[\s;\[\(])[a-z]{2}[\s-][a-z]{2}(?=[\s;\]\)]))|\[([a-z]{2,3}[\-_\s]?)+\]
  5. Версия: [\s;/]+(v(er)?[\s.]*)?[0-9]+\.[0-9\.]+([a-z]{1,2}[0-9\.]*)?
  6. Иногда указывают размеры экрана в пикселях: [0-9]{3}x[0-9]{3}
Естественно, что сто процентного результата не получилось, но прогонка по 30 000 useragent-ов показала, что правильные сегменты высветились в 97%.
Так что результат вполне достойный. Но нам этого не хватило. Некоторые вещи надо проверять по базе данных и там всё тот же разброс и разнообразие моделей и агентов. Возникла простая и интуитивно понятная идея — поиск по модели. То есть несмотря на то, что существует более десятка разных useragent-ов для той же 95-ой Нокии, в каждом варианте присутствует nokian95. Задача была бы тривиальной, если бы нужно было определить/искать только одну и ту же модель (допустим узнать iPhone или нет). Но тогда вполне хватило бы if-else. В жизни всё сложней и никакого универсального стандарта для определения модели просто нет.

Десерт

Мы пошли от обратного — подчистим useragent от тех токенов, определять которые мы научились.
Используя те же выражения (с лёгкими изменениями) я стираю из useragent блоки один за другим (псевдокод while useragent ismatch replace match with string.empty). Получается остаток из неизвестных мне заранее кусков, часть которых является мусором, а какой то один — моделью. Простейшим решением стало разбиение остатка на отдельные токены — Split(' ', '/', ';') и поиск токена с производителем. Ищем в какая часть содержит одну из следующих строк:

"nokia", "motorola", "mot-", "moto-", "motorazr", "sonyericsson", "samsung", "sec-", "sgh-", "lg-", "lge", "lg", "sie-", "siemens","ipod", "iphone" ,"ipaq", "spv", "i-mate", "mobilephone", "htc", "vodafone", "palm", "rover", "gigabyte", "asus", "alcatel", "mitsu", "verizon", "apple".

Теперь из приведённых выше разных длинных useragent-ов n95 у меня остаются только nokian95 и nokian95_8gb соответственно. Вот ещё несколько примеров полных useragent-ов и результатов очистки:

  • samsung-sgh-f480/f480jihh3 shp/vpp/r5 netfront/3.4 qtv5.3 smm-mms/1.2.0 profile/midp-2.0 configuration/cldc-1.1
    =samsung-sgh-f480
  • sonyericssonw705/r1ea browser/netfront/3.4 profile/midp-2.1 configuration/cldc-1.1 javaplatform/jp-8.4.2
    =sonyericssonw705
  • lg-kc910q browser/teleca-q7. 1 mms/lg-mms-v1.0/1.2 mediaplayer/lgplayer/1.0 java/asvm/1.1 profile/midp-2.1 configuration/cldc-1.1
    =lg-kc910q
  • mozilla/5.0 (symbianos/9.3; u; series60/3.2 nokia6210navigator/03.25; profile/midp-2.1 configuration/cldc-1.1 ) applewebkit/413 (khtml, like gecko) safari/413
    =nokia6210navigator
  • sgh-z370/1.0 netfront/3.3 profile/midp-2.0 configuration/cldc-1.1
    =sgh-z370
  • vodafone/1.0/sex1i/r2aa mozilla/4.0 (compatible; msie 6.0; windows ce; iemobile 7.11) up.link/6.3.1.20.0 profile/midp-2.0 configuration/cldc-1.1
    =vodafone sex1i

На посошок

Помимо браузера вас может интересовать токен WAP (кратко WAP 1.0 = WML, WAP 2.0 = XHTML). Версия mmp (multimedia mobile processor) должна указывать на поддержку аудио/видео кодеков — 1.0 только аудио mp3, а 2.0 поддерживает и видео 3gp. В большей части useragent-ов указанна операционная система и версия — актуально для iPhone: ip(hone|od).
*?os\s*(v(er(sion)?)?)?[\s.]*([0-9._]+|[a-z]+)

Приятного аппетита

Проверка на базе данных и подгонка (finetunning) привели к 99% результату. Это конечно явный overfitting, но это была одной из целей (максимальная точность в определённой аудитории и регионе). Кстати, вышеприведённые regex-ы более абстрактны и должны дать большую погрешность в силу своей универсальности.

Заголовок запроса User-Agent-это характерная строка,позволяющая серверам и сетевым партнерам идентифицировать приложение,операционную систему,производителя и/или версию.

User-Agent заголовок запроса является характеристикой строки , которая позволяет сервера и сетевые коллеги идентификации приложения, операционную системе, поставщику и / или версии запрашивающего агента пользователя .

Предупреждение. Прочтите раздел «Обнаружение браузера с помощью пользовательского агента», чтобы узнать, почему обслуживание разных веб-страниц или служб в разных браузерах обычно является плохой идеей.

Header typeRequest header
Запрещенное имя заголовкаno

Syntax

User-Agent: <product> / <product-version> <comment>

Общий формат для веб-браузеров:

User-Agent: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions>
Directives
<product>

Идентификатор продукта-его название или кодовое имя разработки.

<product-version>

Номер версии продукта.

Ноль или более комментариев,содержащих более подробную информацию.Например,информация о субпродукте.

строка Firefox UA

Дополнительные сведения о строках пользовательских агентов на основе Firefox и Gecko см. В справочнике по строкам пользовательских агентов Firefox . Строка UA Firefox разбита на 4 компонента:

Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
  1. Mozilla/5.
    0
    — это общий токен, который говорит о том, что браузер совместим с Mozilla. По историческим причинам почти каждый браузер сегодня его отправляет.
  2. платформа описывает родную платформу, на которой работает браузер (Windows, Mac, Linux, Android и т. д.), и является ли это мобильным телефоном. Телефоны с ОС Firefox говорят: Mobile — Интернет — это платформа. Обратите внимание, что платформа может состоять из несколькихтокенов ; Подробности и примеры см. ниже.
  3. rv: geckoversion указывает версию выпуска Gecko (например, « 17.0 »). В последних версиях
    браузеров geckoversion совпадает с firefoxversion .
  4. Gecko / geckotrail указывает, что браузер основан на Gecko. (На рабочем столе geckotrail всегда является фиксированной строкой 20100101 . )
  5. Firefox / firefoxversion указывает, что это браузер Firefox, и предоставляет версию (например, « 17.0» ).
Examples
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0
Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0

струна Chrome UA

Строка пользовательского агента Chrome (или движков на основе Chromium/Blink) аналогична строке Firefox. Для совместимости он добавляет такие строки, как KHTML, like Gecko и Safari .

Examples
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36

Струна Opera UA

Браузер Opera также основан на движке Blink, поэтому он выглядит почти так же, как строка Chrome UA, но добавляет "OPR/<version>" .

Examples
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51. 0.2704.106 Safari/537.36 OPR/38.0.2220.41

Использовались более старые выпуски Opera на базе Presto:

Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00
Opera/9.60 (Windows NT 6.0; U; en) Presto/2.1.1

Строка Microsoft Edge UA

Браузер Edge также основан на движке Blink. Он добавляет "Edg/<version>" .

Examples
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59

строка Safari UA

В этом примере строка пользовательского агента — это мобильная версия Safari. В нем есть слово "Mobile" .

Examples
Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1

Строка Internet Explorer UA

Examples
Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9. 0)

струны Crawler and bot UA

Examples
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Mozilla/5.0 (compatible; YandexAccessibilityBot/3.0; +http://yandex.com/bots)

Строки UA библиотек и сетевых инструментов

Examples
curl/7.64.1
PostmanRuntime/7.26.5

Specifications

Specification
Семантика HTTP
# field.user-agent

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebView AndroidChrome AndroidFirefox для AndroidOpera AndroidSafari на IOSSamsung Internet
User-Agent

Yes

12

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

See also

  • Обнаружение пользователя-агента,история и контрольный список
  • Ссылка на строку агента пользователя Firefox
  • Обнаружение браузера с помощью агента пользователя
  • Client hints


HTTP
  • Upgrade

    Заголовок обновления HTTP 1. 1 (только)может быть использован для уже установленного соединения клиент/сервер по другому протоколу (через тот же транспорт Предупреждение:HTTP/2

  • Upgrade-Insecure-Requests

    Заголовок HTTP Upgrade-Insecure-Requests отправляет сигнал серверу, выражая предпочтение клиента для зашифрованного и аутентифицированного ответа, что он может

  • User-Agent: Firefox

    Этот документ описывает строку агента пользователя,используемую Firefox 4 и более поздними приложениями на основе Gecko 2. 0 Строка UA самого Firefox разбивается на

  • Vary

    Заголовок ответа Vary HTTP описывает части сообщения запроса,помимо метода и URL,которые влияют на содержимое,оно встречается Одно и то же значение заголовка Vary

  • 1
  • 208
  • 209
  • 210
  • 211
  • 212
  • 405
  • Next

Список строк агента пользователя

Опубликовано: 15 мая 2022 г.

Строка агента пользователя (UA) содержится в заголовках HTTP и предназначена для идентификации устройств, запрашивающих онлайн-контент. Пользовательский агент сообщает серверу, что такое посещающее устройство (среди прочего), и эта информация может использоваться для определения того, какой контент нужно вернуть. Конечно, это требует использования решения для обнаружения устройств, которое переводит UA в понятную информацию о программном и аппаратном обеспечении.

Мы углубимся в детали и изучим, что составляет UA, и как вы можете использовать синтаксический анализ пользовательского агента в своих интересах, в нашей статье Парсинг пользовательского агента: как это работает и как его можно использовать.

 

Список User-Agent для различных типов устройств

Существуют миллионы комбинаций User-Agent, учитывая, что UA меняются вместе с программным и аппаратным обеспечением. Например, браузер Chrome на iPhone 6 будет представляться с использованием другого UA, чем браузер Safari на том же телефоне.

Каждый тип устройства, включая телефоны, планшеты, настольные компьютеры, может поставляться с собственным UA, позволяющим обнаруживать это устройство для любых целей. Интересно, что боты и поисковые роботы также имеют свои уникальные пользовательские агенты.

Вот список примеров User-Agent для различных типов устройств, которые могут быть обнаружены. Если вы хотите узнать больше об этих устройствах, просто скопируйте и вставьте UA в наш инструмент тестирования User-Agent. Вы увидите все свойства обнаруженного устройства.

  • Пользовательские агенты Android
  • Пользовательские агенты iPhone
  • Пользовательские агенты MS Windows
  • Пользовательские агенты планшета
  • Настольные пользовательские агенты
  • Пользовательские агенты телевизионной приставки
  • Пользовательские агенты игровой консоли
  • Пользовательские агенты ботов и сканеров
  • Пользовательские агенты электронных книг

     

Пользовательские агенты Android

С поддержкой подсказок клиента

Mozilla/5. 0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/114.0.0.0 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/114.0.0.0 Safari/537.36
Mozilla/5.0 (Linux; Android 10) ; K) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/114.0.0.0 Mobile Safari/537.36,gzip(gfe)
См. наше руководство User Agent Client Hints, чтобы улучшить распознавание вашего устройства, если ваш трафик состоит в основном из строк User-Agent из таблицы выше.

Самсунг

9004 9 9005 2 9005 2 9 0050 Mozilla/5.0 (Linux; Android 12; SM-G973U) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Samsung Galaxy S22 5G
Mozilla/5.0 (Linux; Android 13; SM-S901B) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 13; SM-S901U) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Samsung Galaxy S22 Ultra 5G
Mozilla/5. 0 (Linux; Android 13; SM-S908B) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 13; SM-S908U) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/111.0.0.0 Mobile Safari/537.36
Samsung Galaxy S21 5G
Mozilla/5.0 (Linux; Android 13; SM-G991B) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Mozilla/5.0 ( Linux, Android 13, SM-G991U) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Samsung Galaxy S21 Ultra 5G
Mozilla/5.0 (Linux; Android 13; SM-G998B) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 13; SM-G998U) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Samsung Galaxy A53 5G
Mozilla/5. 0 (Linux; Android 13; SM-A536B) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 13; SM-A536U) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Samsung Galaxy A51 90 069
Mozilla/5.0 (Linux; Android 13; SM-A515F) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Mozilla/5.0 (Linux ; Android 13; SM-A515U) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Samsung Galaxy S10
Mozilla/5.0 (Linux; Android 12; SM-G973F) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36

Google Pixel

9 0049
Google Pixel 6
Mozilla/5. 0 (Linux; Android 13; Pixel 6) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Google Pixel 6a
Mozilla/5.0 (Linux; Android 13; Pixel 6a) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Google Pixel 6 Pro
Mozilla/5.0 (Linux; Android 13; Pixel 6 Pro) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Google Pixel 7
Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Google Pixel 7 Pro
Mozilla/5.0 (Linux; Android 13; Pixel 7 Pro) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36

Motorola

Motorola Moto G Pure
Mozilla/5.0 (Linux; Android 12; moto g pure) AppleWebKit/537. 36 (KHTML, как Gecko) Chrome/112. 0.0.0 Mobile Safari/537.36
Motorola Moto G Stylus 5G
Mozilla/5.0 (Linux; Android 12; moto g stylus 5G) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36v
Motorola Moto G Stylus 5G (2022)
Mozilla/5.0 (Linux; Android 12; moto g stylus 5G (2022)) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/112 .0.0.0 Mobile Safari/537.36
Motorola Moto G 5G (2022)
Mozilla/5.0 (Linux; Android 12; moto g 5G (2022)) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Motorola Moto G Power (2022)
Mozilla/5.0 (Linux; Android 12; moto g power (2022)) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/112.0.0.0 Mobile Safari/5 37.36
Motorola Moto G Power (2021)
Mozilla/5.0 (Linux; Android 11; moto g power (2021)) AppleWebKit/537. 36 (KHTML, как Gecko) Chrome/112.0.0. 0 Mobile Safari/537.36

Различные популярные модели Android

9006 8 Redmi Note 8 Pro
Redmi Note 9 Pro
Mozilla/5.0 (Linux; Android 12; Redmi Note 9 Pro) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 11; Redmi Note 8 Pro) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Huawei P30 Pro
Mozilla/5.0 (Linux; Android 10; VOG-L29) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Huawei P30 lite
Mozilla/5.0 (Linux; Android 10; MAR-LX1A) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/112.0.0.0 Mobile Safari/537.36 90 051
Redmi Note 10 Pro
Mozilla/5.0 (Linux; Android 13; M2101K6G) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/112. 0.0.0 Mobile Safari/537.36 9005 1
Xiaomi Poco X3 Pro
Mozilla/5.0 (Linux; Android 12; M2102J20SG) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/112.0.0.0 Mobile Safari/537.36
Redmi Note 11 Pro 5G
Mozilla/5.0 (Linux; Android 12; 2201116SG) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/112.0.0.0 Mobile Safari/537. 36
OnePlus Nord N200 5G
Mozilla/5.0 (Linux; Android 12; DE2118) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/112.0.0.0 Mobile Safari/537 .36

Если вам интересно, какие устройства наиболее распространены в вашем регионе, ознакомьтесь с нашим списком самых популярных в мире устройств Android.

Агенты пользователя iPhone

Ниже приведены примеры строк агентов пользователя, используемых наиболее популярными устройствами iPhone. Поскольку Apple не передает много информации через User Agent, номера версий не позволяют различать модели iPhone.

Однако с помощью клиентской части DeviceAtlas вы можете классифицировать эти пользовательские агенты, чтобы возвращать правильную модель устройства.

Полное руководство по пользовательским агентам — обновлено в 2023 г.

Загрузите нашу бесплатную электронную книгу по пользовательским агентам, чтобы узнать:

  • Что такое пользовательский агент?
  • Как их разбирать?
  • Что с ними можно сделать?

Скачать бесплатное руководство


Apple iPhone SE (3-го поколения)
Mozilla/5.0 (iPhone14,6; U; CPU iPhone OS 15_4, как Mac OS X) AppleWebKit/602.1.50 (KHTML, как Gecko) Версия/10.0 Mobile/19E241 Safari/602.1
iPhone 13 Pro Max
Mozilla/5.0 (iPhone14,3; U; CPU iPhone OS 15_0, как Mac OS X) AppleWebKit/602.1.50 (KHTML, как Gecko) Версия/10. 0 Mobile/19A346 Safari/602.1
iPhone 12
Mozilla/5.0 (iPhone13,2; U; ЦП iPhone OS 14_0, как Mac OS X) AppleWebKit/602.1.50 (KHTML, как Gecko) Версия/10.0 Mobile/15E148 Safari/602.1
iPhone 11
Mozilla/5.0 (iPhone12,1; U; ЦП iPhone OS 13_0, например Mac OS X) AppleWebKit/602.1.50 (KHTML, например Gecko) Версия/10.0 Mobile/15E148 Safari/602.1
iPhone 11
Mozilla/5.0 (iPhone12,1; U; ЦП iPhone OS 13_0, например Mac OS X) AppleWebKit/602.1.50 (KHTML, например Gecko) Версия/10.0 Mobile/15E148 Safari/602.1
Apple iPhone XR (Safari)
Mozilla/5.0 (iPhone; ЦП iPhone OS 12_0, например Mac OS X) AppleWebKit/605.1.15 (KHTML, например Gecko) Версия/12. 0 Mobile/15E148 Safari/604.1
Apple iPhone XS (хром)
Mozilla/5.0 (iPhone; ЦП iPhone OS 12_0, например Mac OS X) AppleWebKit/605.1.15 (KHTML, например Gecko) CriOS/69.0.3497.105 Mobile/15E148 Safari/605.1
Apple iPhone XS Max (Firefox)
Mozilla/5.0 (iPhone; ЦП iPhone OS 12_0, например Mac OS X) AppleWebKit/605.1.15 (KHTML, например Gecko) FxiOS/13.2b11866 Mobile/16A366 Safari/605.1.15
Apple iPhone X
Mozilla/5.0 (iPhone; ЦП iPhone OS 11_0, например Mac OS X) AppleWebKit/604.1.38 (KHTML, например Gecko) Версия/11.0 Mobile/15A372 Safari/604.1
Apple iPhone 8
Mozilla/5.0 (iPhone; ЦП iPhone OS 11_0, например Mac OS X) AppleWebKit/604. 1.34 (KHTML, например Gecko) Version/11.0 Mobile/15A5341f Safari/604.1
Apple iPhone 8 Plus
Mozilla/5.0 (iPhone; ЦП iPhone OS 11_0, например Mac OS X) AppleWebKit/604.1.38 (KHTML, например Gecko) Version/11.0 Mobile/15A5370a Safari/604.1
Apple iPhone 7
Mozilla/5.0 (iPhone9,3; U; ЦП iPhone OS 10_0_1, как Mac OS X) AppleWebKit/602.1.50 (KHTML, как Gecko) Версия/10.0 Mobile/14A403 Safari/602.1
Apple iPhone 7 Plus
Mozilla/5.0 (iPhone9,4; U; ЦП iPhone OS 10_0_1, как Mac OS X) AppleWebKit/602.1.50 (KHTML, как Gecko) Версия/10.0 Mobile/14A403 Safari/602.1
Apple iPhone 6
Mozilla/5.0 (Apple-iPhone7C2/1202.466; U; ЦП как Mac OS X; en) AppleWebKit/420+ (KHTML, как Gecko) Версия/3. 0 Mobile/1A543 Safari/419.3

Пользовательские агенты MS Windows Phone

Microsoft Lumia 650
Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1; Microsoft; RM-1152) AppleWebkit/537,36 (KHTML, как Gecko) Chrome/52.0.2743.116 Mobile Safari/537.36 Edge/15.15259 993.116.0051
Майкрософт Люмия 550
Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; RM-1127_16056) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.1 0536
Майкрософт Люмия 950
Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/13.1058

Пользовательские агенты планшета

Samsung Galaxy Tab S8 Ultra
Mozilla/5. 0 (Linux; Android 12; SM-X906C Build/QP1A.1

.020; wv) AppleWebKit/537.36 (KHTML, как Gecko) Версия/4.0 Chrome/80.0.3987.119 Mobile Safari/5 37.36

Вкладка Lenovo Yoga 11
Mozilla/5.0 (Linux; Android 11; Lenovo YT-J706X) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/96.0.4664.45 Сафари/537.36
Пиксель Google C
Mozilla/5.0 (Linux; Android 7.0; Pixel C Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, например Gecko) Version/4.0 Chrome/52.0.2743.98 Safari/537.36
Планшет Sony Xperia Z4
Mozilla/5.0 (Linux; Android 6.0.1; SGP771 Build/32.2.A.0.253; wv) AppleWebKit/537.36 (KHTML, как Gecko) Version/4.0 Chrome/52.0.2743.98 Сафари/537.36
Планшет Nvidia Shield K1
Mozilla/5. 0 (Linux; Android 6.0.1; SHIELD Tablet K1 Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, как Gecko) Version/4.0 Chrome/55.0.2883.91 Safari/537.36 900 51
Вкладка Samsung Galaxy S3
Mozilla/5.0 (Linux; Android 7.0; SM-T827R4 Build/NRD90M) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/60.0.3112.116 Safari/537.36
Вкладка Samsung Galaxy A
Mozilla/5.0 (Linux; Android 5.0.2; SAMSUNG SM-T550 Build/LRX22G) AppleWebKit/537.36 (KHTML, как Gecko) SamsungBrowser/3.3 Chrome/38.0.2125.102 Safari/537.36
Amazon Kindle Fire HDX 7
Mozilla/5.0 (Linux; Android 4.4.3; сборка KFTHWI/KTU84M) AppleWebKit/537.36 (KHTML, как Gecko) Silk/47.1.79например Chrome/47.0.2526.80 Safari/537.36
LG G Pad 7. 0
Mozilla/5.0 (Linux; Android 5.0.2; LG-V410/V41020c Build/LRX22G) AppleWebKit/537.36 (KHTML, как Gecko) Version/4.0 Chrome/34.0.1847.118 Safari/537.36

Если вам нужен список пользовательских агентов мобильных браузеров, они у нас тоже есть — Список строк пользовательских агентов мобильных браузеров.

Настольные пользовательские агенты

ПК на базе Windows 10 с браузером Edge
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246
Ноутбук на базе Chrome OS с браузером Chrome (Chromebook)
Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/51.0.2704.64 Safari/537.36
Компьютер на базе Mac OS X с браузером Safari
Mozilla/5. 0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, как Gecko) Version/9.0.2 Safari/601.3.9
ПК на базе Windows 7 с браузером Chrome
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/47.0.2526.111 Safari/537.36
ПК на базе Linux с браузером Firefox
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1
Добавьте интеллектуальные функции устройств в свои веб-приложения за считанные минуты.

Для Интернета, нативных приложений и сред операторов мобильной связи.

Сравнение вариантов и цен

Агенты пользователя для приставок

Google ADT-2
Dalvik/2.1.0 (Linux; U; Android 9; ADT-2 Build/PTT5. 181126.002)
Chromecast
Mozilla/5.0 (CrKey armv7l 1.5.16041) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/31.0.1650.0 Safari/537.36
Року Ультра
Roku4640X/DVP-7.70 (297.70E04154A)
Миникс NEO X5
Mozilla/5.0 (Linux; U; Android 4.2.2; he-il; NEO-X5-116A Build/JDQ39) AppleWebKit/534.30 (KHTML, как Gecko) Version/4.0 Safari/534.30
Амазон AFTWMST22
Mozilla/5.0 (Linux; Android 9; AFTWMST22 Build/PS7233; wv) AppleWebKit/537.36 (KHTML, как Gecko) Version/4.0 Chrome/88.0.4324.152 Mobile Safari/537.36
Amazon 4K Fire TV
Mozilla/5.0 (Linux; Android 5. 1; AFTS Build/LMY47O) AppleWebKit/537.36 (KHTML, например, Gecko) Версия/4.0 Chrome/41.99900.2250.0242 Safari/537.36
Плеер Google Nexus
Dalvik/2.1.0 (Linux; U; Android 6.0.1; Nexus Player Build/MMB29T)
Apple TV 6-го поколения 4K
AppleTV11,1/11.1
Apple TV 5-го поколения 4K
AppleTV6,2/11.1
Apple TV 4-го поколения
AppleTV5,3/9.1.1

Пользовательские агенты игровых консолей

Playstation 5
Mozilla/5.0 (PlayStation; PlayStation 5/2.26) AppleWebKit/605.1.15 (KHTML, например Gecko) Version/13.0 Safari/605.1.15
Playstation 4
Mozilla/5. 0 (PlayStation 4 3.11) AppleWebKit/537.73 (KHTML, как Gecko)
Playstation Vita
Mozilla/5.0 (PlayStation Vita 3.61) AppleWebKit/537.73 (KHTML, как Gecko) Silk/3.2
Xbox Series X
Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox Series X) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/48.0.2564.82 Safari/537.36 Edge/20.02
Xbox One S
Mozilla/5.0 (Windows NT 10.0; Win64; x64; XBOX_ONE_ED) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
Xbox One
Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Xbox; Xbox One) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/46.0.2486.0 Mobile Safari/537. 36 Edge/13.10586
Nintendo Switch
Mozilla/5.0 (Nintendo Switch; WifiWebAuthApplet) AppleWebKit/601.6 (KHTML, как Gecko) NF/4.0.0.5.10 NintendoBrowser/5.1.0.13343
Nintendo Wii U
Mozilla/5.0 (Nintendo WiiU) AppleWebKit/536.30 (KHTML, например Gecko) NX/3.0.4.2.12 NintendoBrowser/4.3.1.11264.US
Нинтендо 3DS
Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7412.EU

Пользовательские агенты ботов и сканеров

Мы составили более подробный список строк User-Agent наиболее активных веб-сканеров и ботов.

Бот Google
Mozilla/5.0 (совместимый; Googlebot/2.1; +http://www.google.com/bot.html)
Бот Бинг
Mozilla/5. 0 (совместимо; bingbot/2.0; +http://www.bing.com/bingbot.htm)
Yahoo! бот
Mozilla/5.0 (совместимо; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)

Пользовательские агенты для электронных книг

Amazon Kindle 4
Mozilla/5.0 (X11; U; Linux armv7l, как Android; en-us) AppleWebKit/531.2+ (KHTML, например Gecko) Версия/5.0 Safari/533.2+ Kindle/3.0+
Amazon Kindle 3
Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, как Gecko, Safari/528.5+) Version/4.0 Kindle/3.0 (экран 600×800; поворот)

Узнайте больше о User-Agents

Если вам нужна дополнительная информация о User-Agents, обязательно прочитайте следующие сообщения в блоге DeviceAtlas:

  • Как работает анализ User-Agent и как его можно использовать
  • Список агентов пользователя мобильного браузера
  • Анализ строки User-Agent
  • Создание баз данных устройств с помощью строк User-Agent
  • Как переключить UA в настольном браузере

HTTP-заголовок User-Agent: синтаксис, директива, примеры

от Holistic SEO

HTTP-заголовок User-Agent — это заголовок запроса, содержащий строку, идентифицирующую операционную систему и браузер, используемые веб-сервером. HTTP-заголовок User-Agent содержит строку User-Agent. Заголовок запроса User-Agent — это уникальная строка, которая позволяет серверам и одноранговым узлам сети идентифицировать запрашивающее приложение пользовательского агента, операционную систему, поставщика и/или версию. HTTP-заголовок User-Agent имеет несколько значений. <версия продукта> и комментарий> <обязательны>. Значение синтаксиса HTTP-заголовка User-Agent используется для идентификации приложения, операционной системы, поставщика и версии пользовательского агента запроса. Пример HTTP-заголовка User-Agent показан ниже.

 User-Agent: Mozilla/5.0 (<информация о системе>)  (<сведения о платформе>)  

Заголовок запроса HTTP-заголовка User-Agent показан выше. В статье будут обработаны синтаксис HTTP-заголовка User-Agent, директивы и использование с примерами.

HTTP-заголовок User-Agent — это заголовок, содержащий строку, сообщающую веб-серверу, какая у него операционная система и браузер. Используйте заголовок запроса User-Agent, чтобы сообщить серверам и другим пользователям сети, какое программное обеспечение, операционную систему, поставщика или версию программного обеспечения вы используете. Целью HTTP-заголовка User-Agent является создание журнала доступа со всеми запросами к серверу.

Заголовок HTTP User-Agent состоит из трех частей по своему синтаксису. Синтаксис использования HTTP-заголовка User-Agent описан ниже.

 User-Agent:  /   

Существует несколько директив, которые можно поместить в HTTP-заголовок User-Agent. Директивы по использованию HTTP-заголовка User-Agent приведены ниже.

 <продукт> 

Уникальная идентификация продукта, например его имя или кодовое имя разработки.

 <версия продукта> 

Номер версии продукта можно найти здесь.

 <комментарий> 

Нет или более комментариев, содержащих дополнительную информацию. Например, информация о субпродуктах.

HTTP-заголовок User-Agent используется для идентификации операционной системы веб-сервера и браузера, а также для того, чтобы одноранговые узлы сетевого протокола могли идентифицировать веб-сервер. Каждый веб-сайт, который посещает пользователь, получает HTTP-заголовок User-Agent, который отправляется браузером. Строка пользовательского агента не записывается стандартизированным образом, потому что разные веб-браузеры используют разные форматы, и многие веб-браузеры загружают большой объем информации в свои пользовательские агенты. Поле заголовка HTTP User-Agent включается в заголовок HTTP для веб-сайта, когда браузер пользователя устанавливает соединение с веб-сайтом. Информация, содержащаяся в области заголовка, отличается от браузера к браузеру. Информация используется для обслуживания различных веб-сайтов в различных веб-браузерах и операционных системах на основе информации, полученной от них.

Примеры использования User-Agent

HTTP-заголовок User-Agent имеет разные примеры использования разных веб-браузеров. Ниже приведен пример использования HTTP-заголовка User-Agent.

Строка UA Firefox

 Mozilla/5.0 (платформа; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion 

Строка UA Chrome

 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 ( KHTML, например Gecko) Chrome/51.0.2704.103 Safari/537.36 

Opera UA string

 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41 

Строка UA Microsoft Edge

 Mozilla /5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59 

Safari Строка UA

 Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 как Mac OS X) AppleWebKit/605.1.15 (KHTML, как Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1 

Строка UA для Internet Explorer

 Mozilla/5. 0 (совместимая; MSIE 9.0; ОС Windows Phone 7.5; Trident/5.0; IEMobile/9.0) 

Строки UA сканера и бота

 Mozilla/5.0 (совместимая; Googlebot/2.1; +http ://www.google.com/bot.html) 

Библиотека и сетевой инструмент Строки UA

 curl/7.64.1
PostmanRuntime/7.26.5 

Существует только один документ спецификации для HTTP-заголовка User-Agent, которым является протокол передачи гипертекста (HTTP/1.1): семантика и содержимое. Протокол передачи гипертекста (HTTP/1.1): семантика и содержание. В статье 5.5.3 упоминается определение и использование HTTP-заголовка User-Agent. Кроме того, в этой статье обсуждаются примеры и значения HTTP-заголовка User-Agent.

HTTP-заголовок User-Agent. Тип HTTP-заголовка для User-Agent HTTP-заголовка — это заголовки запроса, поскольку они содержат информацию об операционной системе и браузере, определяемую строкой, используемой веб-сервером.

Заголовки HTTP, аналогичные заголовку HTTP User-Agent, перечислены ниже.

  • Ссылки на строку пользовательского агента Firefox: Строка пользовательского агента Firefox указывает строку пользовательского агента, которая используется в Firefox 4 и более поздних версиях, а также в приложениях, построенных на Gecko 2.0 или более поздних версиях.
  • Обнаружение браузера с помощью пользовательского агента: HTTP-заголовок User-Agent используется для идентификации браузера. Как правило, не рекомендуется обслуживать отдельные веб-страницы или службы для разных типов браузеров. Независимо от того, какой браузер или гаджет кто-то использует, Интернет должен быть доступен для всех. Существуют методы разработки вашего веб-сайта, чтобы он постепенно улучшался в зависимости от наличия функций, а не за счет ориентации на определенные браузеры или операционные системы.

Существует несколько браузеров, поддерживающих HTTP-заголовок User-Agent. Ниже перечислены следующие браузеры.

  • Браузер Chrome совместим с HTTP-заголовком User-Agent
  • Браузер Edge совместим с HTTP-заголовком User-Agent
  • Браузер Firefox совместим с HTTP-заголовком User-Agent
  • Браузер Internet Explorer совместим с HTTP-заголовком User-Agent
  • Браузер Opera совместим с HTTP-заголовком User-Agent
  • Браузер Safari совместим с заголовком HTTP User-Agent
  • Браузер WebView Android совместим с заголовком HTTP User-Agent
  • Браузер Chrome Android совместим с заголовком HTTP User-Agent
  • Браузер Firefox Android совместим с заголовком HTTP User-Agent
  • 9002 1 Браузер Opera Android совместим с заголовком HTTP User-Agent
  • Браузер Safari IOS совместим с заголовком HTTP User-Agent
  • Интернет-браузер Samsung совместим с заголовком HTTP User-Agent

Вы можете увидеть изображение, которое показывает кросс-браузерную совместимость HTTP-заголовков User-Agent ниже.