3

建物の MAC アドレスを収集しようとしており、Vaadin 6 を使用して Web アプリケーションを作成しました (アプリケーションには他の機能があるため、vaadin に固執する必要があります)。

問題は、ユーザーに自分の名前だけを挿入してもらい、自分の MAC アドレスを自動的に取得してもらいたいのですが、その方法がわからないことです。

使っていた

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

問題は、このコードが自分のサーバーの IP と Mac を返すことです。

問題は、クライアントの MAC アドレスを取得するにはどうすればよいかということです。

また、ローカルIPを取得できればはるかに優れていますが、最初にMacが必要です。

どんな助けでも大歓迎です。

4

1 に答える 1

3

取得できるサーブレット内のクライアントの 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 に答える