Получить Mac от клиента

Я пытаюсь собрать MAC-адреса здания, и я создал веб-приложение, используя Vaadin 6(у приложения есть другие функции, поэтому я должен придерживаться vaadin).

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

Я использовал

ip = InetAddress.getLocalHost();
mac = ip.getHostAddress();

Проблема в том, что этот код возвращает мне мои собственные серверы ip и mac.

Итак, вопрос в том, как я могу получить MAC-адрес клиента?

Также, если я могу получить локальный IP-адрес, который намного лучше, но сначала мне нужен Mac.

Любая помощь очень ценится.

1 ответ

IP-адрес клиента в сервлете вы можете получить так -

HttpServletRequest httpServletRequest = (HttpServletRequest) request;

// Proxy
String userIpAddress = httpServletRequest.getHeader("X-Forwarded-For");

if(userIpAddress == null) {
   userIpAddress = request.getRemoteAddr();
}

В Vaadin есть класс WebBrowser, вы можете использовать его -

WebBrowser browser = (WebBrowser) getWindow().getTerminal();
String userIpAddress = browser.getAddress();

MAC-адрес отправителя изменяется столько раз, сколько раз кадр проходит через маршрутизаторы, и вы всегда будете получать MAC-адрес сетевого шлюза.

Другие вопросы по тегам