yoyo08 发表于 2013-1-28 19:22:09

Java获取本机mac地址

下面的两种方法都能获取本机的mac地址,但是第二种方法需要使用jdk1.6。
 
package cn.lifx.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.net.UnknownHostException;public class MacAddressTest{public static void main(String[] args){String address = "";String host = "*.*.*.*";MacAddressTest test = new MacAddressTest();address = test.getMacAddress();System.out.println("Physical Address is : " + address);address = test.getMacAddress(host);System.out.println("Physical Address is : " + address);}public String getMacAddress(){String mac = "";String line = "";                String os = System.getProperty("os.name");                  if (os != null && os.startsWith("Windows"))         {               try             {                   String command = "cmd.exe /c ipconfig /all";                   Process p = Runtime.getRuntime().exec(command);                                 BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));                                 while((line = br.readLine()) != null)                {                     if (line.indexOf("Physical Address") > 0)                  {                           int index = line.indexOf(":") + 2;                                                mac = line.substring(index);                                                break;                     }                   }                                 br.close();                               } catch (IOException e) {}         }                   return mac;   }public String getMacAddress(String host){String mac = "";StringBuffer sb = new StringBuffer();try {NetworkInterface ni = NetworkInterface.getByInetAddress(InetAddress.getByName(host));byte[] macs = ni.getHardwareAddress();for(int i=0; i<macs.length; i++){mac = Integer.toHexString(macs & 0xFF);      if (mac.length() == 1)      {      mac = '0' + mac;      } sb.append(mac + "-");}} catch (SocketException e) {e.printStackTrace();} catch (UnknownHostException e) {e.printStackTrace();}mac = sb.toString();mac = mac.substring(0, mac.length()-1);return mac;}} 
页: [1]
查看完整版本: Java获取本机mac地址