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

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
这个代码包含了以前常见的用Runtime实现的方法,已经使用JDK1.6新特性实现的方法。
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.net.NetworkInterface;
  4. import java.util.Enumeration;
  5. /**
  6.  * JDK6新特性,JAVA获得机器MAC地址的方法
  7.  *
  8.  * @author 老紫竹(Java世纪网,java2000.net)
  9.  */
  10. public class Test {
  11.   // 返回一个字节的十六进制字符串
  12.   static String hexByte(byte b) {
  13.     // String s = "000000" + Integer.toHexString(b);
  14.     // return s.substring(s.length() - 2);
  15.     return String.format("%02x",b); // 网友的建议,可修改为这个代码,更简单通用一些
  16.   }
  17.   public static void main(String[] args) throws Exception {
  18.     System.out.println("本机器的所有的网卡MAC发下:");
  19.     getMacOnWindow();
  20.     getMac();
  21.   }
  22.   /**
  23.    * JDK1.6新特性获取网卡MAC地址
  24.    */
  25.   public static void getMac() {
  26.     try {
  27.       Enumeration<NetworkInterface> el = NetworkInterface.getNetworkInterfaces();
  28.       while (el.hasMoreElements()) {
  29.         byte[] mac = el.nextElement().getHardwareAddress();
  30.         if (mac == null)
  31.           continue;
  32.         StringBuilder builder = new StringBuilder();
  33.         for (byte b : mac) {
  34.           builder.append(hexByte(b));
  35.           builder.append("-");
  36.         }
  37.         builder.deleteCharAt(builder.length() - 1);
  38.         System.out.println(builder);
  39.       }
  40.     } catch (Exception exception) {
  41.       exception.printStackTrace();
  42.     }
  43.   }
  44.   /**
  45.    * 原始的获取网卡MAC地址
  46.    */
  47.   public static void getMacOnWindow() {
  48.     try {
  49.       String mac = null;
  50.       Process process = Runtime.getRuntime().exec("ipconfig /all");
  51.       BufferedReader buffer = new BufferedReader(new InputStreamReader(process.getInputStream()));
  52.       for (String line = buffer.readLine(); line != null; line = buffer.readLine()) {
  53.         int index = line.indexOf("Physical Address");
  54.         if (index <= 0) {
  55.           continue;
  56.         }
  57.         mac = line.substring(index + 36);
  58.         break;
  59.       }
  60.       buffer.close();
  61.       process.waitFor();
  62.       System.out.println(mac);
  63.     } catch (Exception exception) {
  64.       exception.printStackTrace();
  65.     }
  66.   }
  67. }

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/jgfyyfd/article/details/84195265
今日推荐