import java.net.NetworkInterface;
import java.util.Enumeration;
public class GetMacAdr{
public static void main(String args[]) throws Exception{
String nicaddr = "";
// このマシン上のネットワークインタフェースをnicに格納
Enumeration<NetworkInterface> nic = NetworkInterface.getNetworkInterfaces();
while( nic.hasMoreElements() ) {
NetworkInterface n = nic.nextElement();
//インタフェース名を表示
System.out.print( n.getName() + " : " );
//MACアドレスをbyte[]で取得
byte[] addressByte = n.getHardwareAddress();
// 取得したMACアドレスをStringへ変換
if( addressByte != null ){
for( byte b : addressByte ){
nicaddr = nicaddr + String.format( "%02X", b);
}
}
// Stringクラスのnicaddrを表示
System.out.println( nicaddr );
nicaddr = "";
}
}
}
API見て分かるように、JDK6でないと出来ません。更にLinuxならroot権限で実行する必要あります。
あと、これは自PCのMACアドレスに対してですよ。他のPCのMACアドレス取得はできません。他のPCのMACアドレスを取得したい場合、jpcapを使う手があります。
お礼
自PCのMACアドレスをちょっと論理演算したりしたかったのです! ありがとうございます。