Ответ 1
Для Java взгляните на User Agent Utils (также здесь).
У меня есть модуль Java
, который получает строку User-Agent
от браузера конечного пользователя, должен вести себя несколько иначе, в зависимости от типа браузера, версии браузера и, возможно, даже операционной системы.
Например: {"FireFox", "7.0", "Win7"}
, {"Safari", "3.2", "iOS9"}
Я понял, что строка User-Agent
может отличаться в своем формате для той же конфигурации из-за разных подключаемых модулей и т.д.
Мои вопросы:
User-Agent
? Если да - где я могу найти его точно? (Из моего понимания RFC здесь не так уж много стандартизации).No
- есть ли подходящий способ разобрать его, чтобы получить информацию, которая мне нужна?User-Agent
?Важное примечание. Я говорю о веб-приложении, поэтому мои возможности сбора данных ограничены javascript
.
Для Java взгляните на User Agent Utils (также здесь).
- Является ли структура User-Agent четко определенной? Если да - где я могу найти его точно? (Из моего понимания RFC не так много стандартизация здесь).
Нет, структура строки User-Agent не стандартизирована, но очень похожа на разные агенты. Хотя они очень похожи, все же необходимо использовать несколько шаблонов для обнаружения.
- Предполагая, что вопрос №1 есть Нет - существует ли подходящий способ проанализировать его, чтобы получить информацию, которая мне нужна?
Вы можете попробовать библиотеку UADetector. Это оболочка для базы данных User-Agent user-agent-string.info.
- Есть ли лучший способ получить информацию, которая мне нужна, кроме строки User-Agent?
Я бы не сказал, что это лучший или худший способ, но другим способом обнаружения пользовательских агентов является использование JavaScript на стороне клиента для сбора информации об User-Agent и отправки его через скрытые входы HTML или XmlHttpRequest на ваш сервер, Все зависит от того, что вы хотите идентифицировать. Для точного обнаружения веб-браузеров JavaScript не сможет помочь.
Посмотрите на библиотеку Java, которую я написал для этой цели: Yauaa
Я сделал очень простой сервлет, где вы можете попробовать, чтобы узнать, дает ли он ответы, которые вы ищете: http://analyze-useragent.appspot.com/
Это Apache 2 лицензируется и публикуется в Maven, поэтому использовать его в Java-приложении очень просто. В настоящее время он используется в производстве на одном из самых загруженных сайтов Нидерландов (где я работаю).
Смотрите этот блог об этом https://techlab.bol.com/making-sense-user-agent-string/
Библиотека user-agent-utils достигла конца жизни.
Существует многообещающий многоязычный lib, называемый ua-parser, который активно поддерживается.