この愚かな質問を申し訳ありませんが、JAVAのIPアドレスを知らずにネットワークカードのMACアドレスを知る方法はありますか?JAVAでIPを使わずにMAC Adddressを取得するにはどうすればよいですか?
ありがとう、 VLAD。
この愚かな質問を申し訳ありませんが、JAVAのIPアドレスを知らずにネットワークカードのMACアドレスを知る方法はありますか?JAVAでIPを使わずにMAC Adddressを取得するにはどうすればよいですか?
ありがとう、 VLAD。
(お使いのOSがある場合は、nix
システム上で、Windowsが同様の方法でipconfig
を使用している場合)あなたは以下のようなシステムコマンドを使用することができます。
Runtime r = Runtime.getRuntime();
Process p = r.exec("ifconfig -u |grep ether");
p.waitFor();
BufferedReader b = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = b.readLine()) != null) {
System.out.println(line);
}
b.close();
を私のシステムでは、それが与える:
ether 28:37:37:15:3b:31
ether b2:00:10:65:56:41
...
多分多くのMACアドレス、Bluetooth、イーサネット、WIFIなどがあることに注意してください。
NetworkInterface.getHardwareAddress
を使用できます。 NetworkInterface.getNetworkInterfaces()
ですべてのネットワークカードのリストを取得できます。
このコードを使用して、MACアドレスを知ることができます。
InetAddress address = InetAddress.getLocalHost();
NetworkInterface nwi = NetworkInterface.getByInetAddress(address);
byte mac[] = nwi.getHardwareAddress();
System.out.println(mac);
私はそれを試してみましたが、最初にlinuxのLocal Loopbackのアドレスを取るため動作しません。より具体的に言えば、私はLinux上のインターネットに接続されているネットワークカードのインターネットアドレスだけが必要です。Windows上では、あなたが抱く方法が働くからです。 –