【问题标题】:Get mac from client从客户端获取mac
【发布时间】:2013-11-02 07:44:47
【问题描述】:

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

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

我正在使用

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

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

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

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

非常感谢任何帮助。

【问题讨论】:

  • @user2511414 你可以通过IP地址获取MAC地址;并且,它不是“真正不合逻辑”,而是 TCP/IP 的基本操作或 ARP 协议。但是,它只能用于同一子网上的 IP 地址。这里真正的问题是“为了什么目的”? Java 中的 MAC 地址除了显示在某处外,没有任何用处。
  • @EJP 好点,我只是没有提到工作范围,我指的是互联网。
  • Ejp,我需要我的防火墙的mac地址,每个人都会得到一个静态ip,并用mac识别电脑。所以也许你可以发布关于如何获得那个 mac 的解决方案?

标签: java ip vaadin mac-address


【解决方案1】:

您可以在 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地址。

【讨论】:

  • 非常感谢您的回复。我并没有真正理解 mac 的部分以及它在节点之间的作用。如果我在局域网上有一个服务器,那么理论上连接会是直接的吗?那我可以得到mac吗?
猜你喜欢
  • 2012-10-07
  • 2021-03-18
  • 1970-01-01
  • 2016-09-06
  • 2016-07-27
  • 1970-01-01
  • 2017-10-28
  • 2017-05-28
  • 2010-11-20
相关资源
最近更新 更多