Руководство

Как определить браузер и операционную систему по строке User-Agent

Вставьте полную строку User-Agent и запустите разбор, чтобы получить классификации браузера, системы, движка и устройства. Пустой ввод приводит к признаку ошибки и примеру строки, а не к классификации среды.

Инструмент Парсер User-Agent

Что подготовить для разбора

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

Для обработки нужен исходный текст User-Agent, а не краткая подпись вроде «Chrome на Windows». В полной строке могут присутствовать маркеры браузера, версии, системы, движка и устройства. Инструмент сопоставляет их с поддерживаемыми правилами, поэтому состав результата зависит от конкретного текста. Для узнаваемых Chrome и Firefox может извлекаться версия с точками; среди распознаваемых систем указаны Windows, macOS, Android, iOS и Linux. Подходящие фрагменты AppleWebKit и Gecko также могут дать классификацию движка.

Поле User-Agent необязательно, однако отсутствие значения обрабатывается отдельно: вместо классификации появляется признак ошибки и пример строки. Поэтому для проверки среды подготовьте непустой исходный текст.

Порядок действий

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

  2. Вставьте скопированный текст в поле User-Agent. Не заменяйте его названием браузера и не сокращайте до слов «Chrome» или «Android»: в таком варианте могут исчезнуть признаки, необходимые для сопоставления. Пустое поле допустимо оставить для проверки реакции на отсутствие ввода, но полезная классификация в этом случае не выполняется.

  3. Запустите разбор доступным элементом управления и просмотрите выведенные признаки. Отдельно проверьте браузер, его версию, операционную систему, версию системы, движок и устройство. Распознавание выполняется по переданному тексту без сетевого доступа.

  4. Для браузера учитывайте порядок проверок. Chrome требует фрагмент Chrome/, но исключается при наличии Chromium, Edg/ или OPR/. Firefox требует Firefox/ и исключает Seamonkey; Safari учитывает Safari/, если в строке нет Chrome. Дополнительные проверки распознают Edg/, OPR/ и Opera, поэтому пересекающиеся маркеры нужно читать вместе.

  5. Сверьте систему и устройство с исходными фрагментами. Подходящие версии Windows, macOS, Android, iOS и Linux могут быть нормализованы. Android или iPhone могут привести к Mobile, iPad к Tablet, а Mobile, Android.*Mobile, iPad и Tablet влияют на итоговое значение. Тексты bot, crawler и spider без учёта регистра могут привести к Bot/Crawler.

  6. Если одно из полей получило Unknown, сопоставьте его с исходной строкой и проверьте, не потеряна ли часть текста. Это значение относится к конкретному полю, для которого не найдено поддерживаемое совпадение.

Как читать полученные поля

Читайте ответ как набор независимых классификаций, полученных из текстовых маркеров, а не как описание, составленное по одному названию браузера. Значение браузера и его версии показывает, какие признаки сработали для этих полей; версия операционной системы появляется только при подходящем фрагменте. WebKit связан с подходящим текстом AppleWebKit, а Gecko требует совпадения текста Gecko с версией.

Пересечение маркеров объясняет часть неожиданных ответов. Например, присутствие Edg/ или OPR/ не следует трактовать как обычный Chrome, поскольку эти проверки исключают соответствующую классификацию. Для Safari важна одновременная проверка отсутствия Chrome, а для Firefox имеет значение отсутствие Seamonkey.

Тип устройства следует оценивать после просмотра всей строки. Начальное значение Desktop может быть изменено признаками Android, iPhone, iPad, Tablet, Mobile или словами, связанными с ботом. Поэтому название системы само по себе не определяет итоговый тип. Если результат содержит Unknown, он говорит только об отсутствии поддерживаемого совпадения для этого поля и не подтверждает отсутствие реальной среды.

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

Практический пример

Вы проверяете полную строку от настольного клиента на Windows и хотите увидеть, какие поля будут сформированы по её текстовым признакам.

Вставьте строку Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 в поле User-Agent и запустите разбор. Затем сопоставьте появившиеся поля с маркерами строки, включая Chrome/, AppleWebKit/ и обозначение Windows в скобках.

Ответ может содержать браузер Chrome, версию 120.0.0.0, операционную систему Windows, движок WebKit и устройство Desktop, если указанные признаки распознаны по правилам.

Ограничения

  • Результат ограничен поддерживаемыми текстовыми шаблонами: отдельные браузеры, системы, движки, боты и форматы версий могут не распознаться или попасть под другое правило при пересечении маркеров.

Частые ошибки

  • Причина ошибки: вместо полной строки передано короткое название браузера или обрезанный фрагмент, в котором нет нужных маркеров. Исправьте ввод, вставив исходный User-Agent целиком.

Частые вопросы

Какие сведения показывает разбор User-Agent?

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

Что будет, если оставить поле User-Agent пустым?

Если значение не введено, классификация не выполняется: появляется признак ошибки и пример User-Agent. Чтобы получить поля результата, передайте непустую исходную строку с маркерами клиента и версии, если они присутствуют.

Почему браузер иногда определяется неожиданно?

Причиной может быть пересечение текстовых признаков и порядок их проверок. Например, Edg/ или OPR/ исключают Chrome, а Safari/ учитывается только при отсутствии Chrome, поэтому итог зависит от всей строки.

Инструмент

Парсер User-Agent