Это требование относится к локальному серверу, который собирает информацию обо всех устройствах, которые к нему подключаются в закрытой организации. Необходимо получить такие данные, как версия ОС, версии программного обеспечения, свойства оборудования.
Я использую сервер Tomcat, я хотел бы получить информацию о машине, с которой исходят запросы. Возможно ли это и как?
Ответы (2)
Лучше всего использовать строку пользовательского агента, которая находится в заголовке всех HTTP-запросов. Вы можете получить к нему доступ через HttpServletRequest
следующим образом:
String agent = request.getHeader("User-Agent");
Он содержит такую информацию, как имя браузера (клиента), версию браузера, ОС, версию ОС и т. д. Хотя нет гарантии, что они будут полными и действительными, но с сервера вы не можете заставить клиента отправлять полную и достоверную информацию о сам.
Пример
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/34.0.1847.131 Safari/537.36
Это означает (источник):
Mozilla: MozillaProductSlice. Утверждает, что является пользовательским агентом на основе Mozilla, что верно только для браузеров Gecko, таких как Firefox и Netscape. Для всех других пользовательских агентов это означает «Mozilla-совместимый». В современных браузерах это используется только по историческим причинам. Это больше не имеет реального значения
5.0: версия Mozilla.
Windows NT 6.1: Операционная система: Windows 7
WOW64: (Windows-на-Windows 64-разрядная версия) 32-разрядное приложение выполняется на 64-разрядном процессоре.
AppleWebKit. Web Kit предоставляет набор основных классов для отображения веб-контента в окнах.
537.36: сборка Web Kit
KHTML: механизм компоновки HTML с открытым исходным кодом, разработанный проектом KDE.
как у геккона: как у геккона...
Chrome: Название: Chrome
34.0.1847.131: версия Chrome.
Safari: на основе Safari.
537.36: сборка Safari.
Анализ строки пользовательского агента
Об анализе строк пользовательского агента: Поиск синтаксического анализатора строк пользовательского агента Java а>
Также на сайте useragentstring.com есть API.
И еще в инете (погуглите).
Представьте, что бы это значило, если бы любой веб-сервер мог запросить произвольную информацию о компьютере, который к нему подключается. Есть программное обеспечение, которое делает это, но оно включает клиентское программное обеспечение, по крайней мере, плагин для браузера.
Итак, по поводу того, как вы задаете этот вопрос, я бы сказал: «Нет, это невозможно». Однако основная проблема может быть решена, просто иначе, чем ваш вопрос подразумевает, что вы хотите пойти. И то, как это будет работать, выходит за рамки простого ответа здесь.