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

Парсер пользовательских агентов, это бесплатный инструмент, который анализирует строку пользовательского агента и определяет браузер, операционную систему и тип устройства.
Что можно узнать из строки пользовательского агента?
Строка пользовательского агента представляет собой значение HTTP-поля User-Agent. В браузерах она обычно содержит названия продуктов, номера версий, обозначения операционной системы и сведения об устройстве. Такие строки также отправляют клиенты командной строки, поисковые роботы, программы для чтения лент и встроенные браузеры приложений.
Формат устроен сложнее, чем кажется на первый взгляд. Браузеры часто добавляют маркеры совместимости, связанные с другими браузерами, поэтому определение по первому знакомому названию продукта может дать неверный результат. Например, браузеры на базе Chromium обычно содержат маркеры, относящиеся и к Chrome, и к Safari. Парсер учитывает сочетание и порядок маркеров, а не воспринимает значение как простой список.
Кроме того, данные пользовательского агента предоставляет сам клиент. Он может изменить или полностью подделать их, а некоторые браузеры сокращают объём доступных сведений о версии и устройстве. Поэтому результат анализа полезен для классификации и отладки, но не подтверждает идентичность устройства.
Как пользоваться парсером пользовательских агентов?
Вставь полное значение заголовка в поле Пользовательский агент и запусти инструмент. Он вернёт три поля: Браузер, Операционная система и Тип устройства.
- Скопируй значение после User-Agent из HTTP-запроса, журнала доступа или инструментов разработчика в браузере.
- Сохрани исходные пробелы, скобки, точки с запятой, косые черты и номера версий. Они разделяют продукты и комментарии внутри строки.
- Отправь значение, затем сопоставь полученную классификацию с контекстом запроса.
- В своих заметках по отладке сохрани исходную строку вместе с результатом анализа. Одна лишь классификация может скрыть полезные маркеры версии или совместимости.

Парсер работает на сервере. Строка пользовательского агента передаётся на сервер по HTTPS и не сохраняется. Тем не менее перед отправкой проверь, нет ли в скопированных записях журнала посторонних параметров запроса, идентификаторов сеанса или внутренних имён хостов.
Как понимать результат анализа?
Воспринимай каждое поле как классификацию, полученную из маркеров, которые передал клиент, а не как независимо подтверждённые сведения об оборудовании или программном обеспечении.
- Браузер: показывает распознанное по строке семейство браузера или клиента. Встроенные веб-представления и браузеры на базе Chromium различить сложнее, поскольку многие их маркеры совпадают.
- Операционная система: указывает платформу, определённую по таким обозначениям, как Windows NT, Android, iPhone OS, Mac OS X или Linux. Из-за слоёв совместимости и изменённых строк пользовательского агента результат может быть менее конкретным.
- Тип устройства: относит клиент к общей категории форм-фактора на основе маркеров устройства и платформы. Считай это практической категорией, а не точной моделью оборудования.
Предусмотренные поля результата не являются отчётом о проверке синтаксиса. В повреждённой, сокращённой или незнакомой строке пользовательского агента может не хватать данных для полезной классификации, однако универсального списка ошибок, подобного ошибкам JSON вроде завершающих запятых или ключей без кавычек, не существует. Анализ пользовательских агентов в основном основан на эвристике, поскольку реальные строки различаются у разных клиентов и часто сохраняют устаревший синтаксис совместимости.
В пустом значении нечего классифицировать. Очень длинные значения могут включать расширения, идентификаторы приложений или повторяющиеся маркеры продуктов, а числа обычно имеют смысл только рядом с маркером продукта, к которому относятся. В пользовательских строках клиентов могут встречаться символы с диакритикой и знаки нелатинских алфавитов, но сами по себе они не позволяют определить браузер, операционную систему или устройство.

Примеры
Ввод Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
Парсер обычно определит эту строку как Chrome в Windows на настольном устройстве. Маркер Safari добавлен для совместимости и сам по себе не означает, что браузер является Safari.
Ввод Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1
Эта строка указывает на Safari в iOS и мобильное устройство. Фраза "like Mac OS X" относится к сведениям о совместимости, а маркеры iPhone и Mobile дают более веские основания для определения типа устройства.
Если пользовательский агент был получен из параметра запроса URL, он может быть закодирован с помощью процентного кодирования. Сначала открой Парсер URL, выдели и декодируй параметр, а затем проанализируй полученное значение пользовательского агента.
Когда полезно анализировать пользовательский агент, а когда нет?
Анализ пригодится, если нужно получить понятное описание незнакомого запроса или проверить логику классификации перед развёртыванием. Например, можно изучить запись из журнала доступа Apache или nginx, разобраться с отчётом о проблеме отображения в конкретном браузере, проверить трафик из встроенного приложения или прочитать необработанные данные, экспортированные из аналитической платформы.
Обычно анализ не нужен, если другая система уже предоставляет браузер, операционную систему и устройство в виде структурированных полей. Он также почти бесполезен, когда сервису требуется лишь переслать или заархивировать исходный заголовок. Не используй результат как единственное основание для аутентификации, выявления мошенничества или управления доступом, поскольку отправитель может подделать строку.
Для адаптивных макетов медиазапросы CSS и проверка поддержки функций обычно надёжнее, чем определение устройства на стороне сервера. Анализируй пользовательский агент, когда нужен контекст для диагностики или отчётности, а не для предположений о поддержке конкретной возможности браузера.
Частые вопросы
Можно ли по строке определить, что запрос отправил бот?
Нет, в результатах нет отдельной классификации для ботов. Некоторые поисковые роботы явно указывают себя в пользовательском агенте, но другие имитируют браузеры или не передают полезные сведения. При необходимости подтверждай автоматический трафик по частоте запросов, результатам проверки IP-адресов по опубликованным данным о поисковых роботах и особенностям поведения запросов.
Почему в пользовательском агенте Edge упоминаются Chrome и Safari?
Современный Edge работает на базе Chromium и включает маркеры совместимости, необходимые сайтам, которые проверяют пользовательские агенты. Парсер должен сначала найти более специфичный маркер Edge и лишь затем классифицировать запрос как обычный Chrome или Safari. Здесь важны порядок и специфичность маркеров.
Можно ли перенаправлять мобильных посетителей по типу устройства?
Тип устройства можно использовать как подсказку, но жёсткое перенаправление способно ошибочно классифицировать планшеты, браузеры в режиме настольного сайта и изменённые пользовательские агенты. Лучше используй адаптивную страницу. Если без отдельной мобильной версии не обойтись, позволь посетителю самостоятельно выбрать другую версию.
Заменяют ли клиентские подсказки анализ пользовательского агента?
Не полностью. Клиентские подсказки могут передавать структурированные сведения о браузере и платформе, если их поддерживают браузер и сервер, но они присутствуют не в каждом запросе и не у каждого клиента. Системам, которые работают со старыми браузерами, поисковыми роботами и существующими журналами доступа, по-прежнему может требоваться анализ пользовательских агентов. Храни только те результаты классификации, которые нужны для задачи, и учитывай применимые требования к защите персональных данных.
Популярные инструменты
Создайте свою собственную подпись и легко скачайте её с помощью нашего инструмента для генерации персонализированных электронных подписей.
Рассчитайте размер любого текста в байтах (B), килобайтах (KB) или мегабайтах (MB) с помощью нашего инструмента калькулятора размера текста.
Используйте инструмент обратного поиска IP, чтобы быстро и легко найти домен или хост, связанный с любым IP-адресом.
Используйте наш инструмент ping, чтобы быстро и эффективно проверить статус и время отклика любого веб-сайта, сервера или порта.
Инструмент поиска IP-адресов от Digily Link предоставляет подробную информацию о любом IP-адресе. Используйте этот бесплатный онлайн-сервис, чтобы получить полные данные об IP.
Мгновенно создайте бесплатную ссылку WhatsApp с помощью нашего генератора. Добавьте собственное сообщение и начинайте чаты одним нажатием без входа в систему и программирования.