1. 程式人生 > >jva 獲取本機正在使用的網絡卡Mac地址

jva 獲取本機正在使用的網絡卡Mac地址

package com.common;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;

import org.apache.log4j.Logger;

public class getMacAddress {
	private Logger logger=Logger.getLogger(this.getClass()); 

  
    public String getMacStr() throws Exception{  
    	InetAddress ia = InetAddress.getLocalHost();
		return getLocalMac(ia);		
    }  
  
    private static String getLocalMac(InetAddress ia) throws SocketException {
		// TODO Auto-generated method stub
		//獲取網絡卡,獲取地址
    	System.out.println(ia);
		byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
		System.out.println(mac);
		StringBuffer sb = new StringBuffer("");
		for(int i=0; i<mac.length; i++) {
			if(i!=0) {
				sb.append("-");
			}
			//位元組轉換為整數
			int temp = mac[i]&0xff;
			String str = Integer.toHexString(temp);
			if(str.length()==1) {
				sb.append("0"+str);
			}else {
				sb.append(str);
			}
		}		
		return sb.toString().toUpperCase();
	} 
}
以上程式碼可在有網路的環境下正常使用,如果無網路,請參考另一篇