我正在尝试收集建筑物的mac地址,并且我使用Vaadin 6创建了一个Web应用程序(该应用程序具有其他功能,所以我必须坚持使用vaadin)。
问题是,我希望我的用户只插入他的名字,并让我自动获取他的mac地址,但问题是我不知道该怎么做。
我正在使用
ip = InetAddress.getLocalHost();
mac = ip.getHostAddress();
问题是这段代码返回了我自己的服务器ip和mac。
所以问题是,我怎样才能获得客户端的mac地址?
此外,如果我可以获得更好的本地IP,但首先我需要mac。
非常感谢任何帮助。
答案 0 :(得分: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地址。