Получить 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-адрес сетевого шлюза.