2017-04-11 12 views

答えて

0

(お使いの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などがあることに注意してください。

1

NetworkInterface.getHardwareAddressを使用できます。 NetworkInterface.getNetworkInterfaces()ですべてのネットワークカードのリストを取得できます。

このコードを使用して、MACアドレスを知ることができます。

InetAddress address = InetAddress.getLocalHost(); 
NetworkInterface nwi = NetworkInterface.getByInetAddress(address); 
byte mac[] = nwi.getHardwareAddress(); 
System.out.println(mac); 
+0

私はそれを試してみましたが、最初にlinuxのLocal Loopbackのアドレスを取るため動作しません。より具体的に言えば、私はLinux上のインターネットに接続されているネットワークカードのインターネットアドレスだけが必要です。Windows上では、あなたが抱く方法が働くからです。 –

関連する問題