3

我正在尝试收集建筑物的 mac 地址,并且我使用 Vaadin 6 创建了一个 Web 应用程序(该应用程序具有其他功能,因此我必须坚持使用 vaadin)。

问题是,我希望我的用户只插入他的名字,并让我自动获取他的 mac 地址,但问题是我不知道该怎么做。

我正在使用

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

问题是这段代码返回了我自己的服务器 ip 和 mac。

那么问题来了,如何获取客户端的mac地址??

另外,如果我可以获得更好的本地IP,但首先我需要mac。

很感谢任何形式的帮助。

4

1 回答 1

3

您可以在 servlet 中获取客户端的 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 地址。

于 2013-10-23T20:54:17.600 回答