Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从客户端获取mac_Java_Ip_Vaadin_Mac Address - Fatal编程技术网

Java 从客户端获取mac

Java 从客户端获取mac,java,ip,vaadin,mac-address,Java,Ip,Vaadin,Mac Address,我正在尝试收集一栋大楼的mac地址,我已经使用Vaadin 6创建了一个web应用程序(该应用程序还有其他功能,所以我必须坚持使用Vaadin) 问题是,我想让我的用户只插入他的名字,让我自动获取他的mac地址,但问题是我不知道怎么做 我在用 ip = InetAddress.getLocalHost(); mac = ip.getHostAddress(); 问题是,这段代码返回我自己的服务器ip和mac 所以问题是,我怎样才能得到客户端的mac地址 如果我能得到更好的本地ip,但首先我需要

我正在尝试收集一栋大楼的mac地址,我已经使用Vaadin 6创建了一个web应用程序(该应用程序还有其他功能,所以我必须坚持使用Vaadin)

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

我在用

ip = InetAddress.getLocalHost();
mac = ip.getHostAddress();
问题是,这段代码返回我自己的服务器ip和mac

所以问题是,我怎样才能得到客户端的mac地址

如果我能得到更好的本地ip,但首先我需要mac


非常感谢您的帮助。

您可以在servlet中获得客户端的IP地址-

HttpServletRequest httpServletRequest = (HttpServletRequest) request;

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

if(userIpAddress == null) {
   userIpAddress = request.getRemoteAddr();
}
在课堂上,你可以使用它-

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


发送方的MAC地址更改次数与帧通过路由器的次数相同,您将始终收到网络网关的MAC地址。

非常感谢您的回复。我没有真正理解mac的部分以及它在节点之间的作用。如果我在局域网上有一台服务器,那么实际上连接是直接的,对吗?我可以得到mac吗?@user251414你可以通过IP地址获得mac地址;而且,它不是“真正不符合逻辑”,而是TCP/IP的基本操作或ARP协议。但是,只能对同一子网上的IP地址执行此操作。这里真正的问题是‘为了什么目的’?在Java中,除了在某个地方显示MAC地址之外,你不能做任何有用的事情。@EJP好的一点,我只是不知道工作的范围,我指的是互联网。EJP,我需要我的防火墙的MAC地址,每个人都会得到一个静态ip,我用MAC识别pc。那么也许你可以发布关于如何获得那个MAC的解决方案?