Я использую сервер Tomcat, я хотел бы получить информацию о машине, с которой исходят запросы. Возможно ли это и как?

Это требование относится к локальному серверу, который собирает информацию обо всех устройствах, которые к нему подключаются в закрытой организации. Необходимо получить такие данные, как версия ОС, версии программного обеспечения, свойства оборудования.


person Raja Siddharth    schedule 30.09.2014    source источник
comment
Это делают некоторые коммерческие продукты (например, mcafee.com/in/products/epolicy). -orchestrator.aspx), НО они развертывают агенты на клиенте. Как вы упомянули, они предназначены для использования в закрытой организации, где компьютеры контролируются администратором, а пользователю предоставляется ограниченный доступ к компьютеру.   -  person Deep    schedule 01.10.2014


Ответы (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.

И еще в инете (погуглите).

person icza    schedule 30.09.2014

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

Итак, по поводу того, как вы задаете этот вопрос, я бы сказал: «Нет, это невозможно». Однако основная проблема может быть решена, просто иначе, чем ваш вопрос подразумевает, что вы хотите пойти. И то, как это будет работать, выходит за рамки простого ответа здесь.

person Olaf Kock    schedule 30.09.2014