`
shaobo
  • 浏览: 51456 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JDK6新特性,JAVA获得机器MAC地址的方法

    博客分类:
  • J2SE
阅读更多
import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.NetworkInterface; 
import java.util.Enumeration; 

/** 
 * JDK6新特性,JAVA获得机器MAC地址的方法 
 * 
 * @author 老紫竹(Java世纪网,java2000.net) 
 */ 
public class Test { 
  // 返回一个字节的十六进制字符串 
  static String hexByte(byte b) { 
    String s = "000000" + Integer.toHexString(b); 
    return s.substring(s.length() - 2); 
  } 

  public static void main(String[] args) throws Exception { 
    System.out.println("本机器的所有的网卡MAC发下:"); 
    getMacOnWindow(); 
    getMac(); 
  } 

  /** 
   * JDK1.6新特性获取网卡MAC地址 
   */ 
  public static void getMac() { 
    try { 
      Enumeration<NetworkInterface> el = NetworkInterface.getNetworkInterfaces(); 
      while (el.hasMoreElements()) { 
        byte[] mac = el.nextElement().getHardwareAddress(); 
        if (mac == null) 
          continue; 

        StringBuilder builder = new StringBuilder(); 
        for (byte b : mac) { 
          builder.append(hexByte(b)); 
          builder.append("-"); 
        } 
        builder.deleteCharAt(builder.length() - 1); 
        System.out.println(builder); 

      } 
    } catch (Exception exception) { 
      exception.printStackTrace(); 
    } 
  } 

  /** 
   * 原始的获取网卡MAC地址 
   */ 
  public static void getMacOnWindow() { 
    try { 
      String mac = null; 
      Process process = Runtime.getRuntime().exec("ipconfig /all"); 
      BufferedReader buffer = new BufferedReader(new InputStreamReader(process.getInputStream())); 
      for (String line = buffer.readLine(); line != null; line = buffer.readLine()) { 
        int index = line.indexOf("Physical Address"); 
        if (index <= 0) { 
          continue; 
        } 
        mac = line.substring(index + 36); 
        break; 
      } 
      buffer.close(); 
      process.waitFor(); 
      System.out.println(mac); 
    } catch (Exception exception) { 
      exception.printStackTrace(); 
    } 
  } 
} 


 这个代码包含了以前常见的用Runtime实现的方法,已经使用JDK1.6新特性实现的方法。

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics