特定のウェブサイトにアクセスするために使用されるネットワークインターフェイスのイーサネットアドレスを取得したいと考えています。Javaを使用してイーサネットアドレスを取得するにはどうすればよいですか?
これはどのようにJavaで実行できますか? confing | getHardwareAddress
の受け入れソリューションはさておき、私(P F)を実行してから、Java 5のためのソリューションがあるようには思えないのJava 6でのみ利用可能であること
ソリューション注意。
特定のウェブサイトにアクセスするために使用されるネットワークインターフェイスのイーサネットアドレスを取得したいと考えています。Javaを使用してイーサネットアドレスを取得するにはどうすればよいですか?
これはどのようにJavaで実行できますか? confing | getHardwareAddress
の受け入れソリューションはさておき、私(P F)を実行してから、Java 5のためのソリューションがあるようには思えないのJava 6でのみ利用可能であること
ソリューション注意。
java.net.NetworkInterface.getHardwareAddressそれはあなたが興味のあるマシン上で呼び出す必要があり
(メソッドは、Java 6で追加) - MACは、ネットワーク境界(すなわち、LANおよびWAN)経由で転送されていません。クライアントに問い合わせるためにウェブサイトサーバー上でそれを利用したい場合は、結果を返すアプレットを実行する必要があります。
Java 5以前では、コードparsing output of command line tools on various systemsが見つかりました。
あなたはあなたのクライアントがNATを経由して接続している場合、あなたは、ルータとNOTイーサネットアドレスのアドレスを取得しますがhttp://java.sun.com/javase/6/docs/api/java/net/NetworkInterface.html#getInetAddresses()
を使用してのServerSocketに接続するアドレスを取得することができます。それがローカルネットワーク上にある場合(ハブ/スイッチ経由で、NATを備えたルータはありません)、意図したとおりに動作します。
実際には、他の正しい回答(JDK 6; exec 'ifconfig')を超えて、JNIベースのライブラリがあります。 Java Uuid Generator (JUG) 2.0にはいくつかのプラットフォーム用のコードがあります。これは、JDK 1.2上で動作し、少なくとも(でも多分1.1)上
は、あなたが使用することができJxnet:https://github.com/ardikars/Jxnetは全体で "* *です
は、私は「ネットワークの境界を越えて」*よりも正しいと思います(libpcapの/ WinPcapのを必要とします)ネットワークセグメント "* – m0skit0