Java如何獲得本機MAC地址?

Tags: 地址, 本機,

Java獲得本地MAC地址的方式有很多很多。

這裡只需要配置好Java環境就好。

也就是說,不需要第三方插件,不需要CMD操作。

下面跟我來,我演示給大家看~

Java如何獲得本機MAC地址

工具/原料

一臺配置好java環境的可以上網的電腦

Java獲取本地Mac地址

首先,創建工程,包,和一個類。

在此不加詳述,我們直接看代碼。

這裡,我把這個類命名為GetMacAddr

Java如何獲得本機MAC地址

這裡,最最關鍵的就是這裡這個方法。

我們通過NetworkInterface這個類來操作。

也就是通過getLocalHost()方法先得到本機IP,

然後調用getHardwareAddress()方法得到一個byte數組的地址。

我們把六位地址傳到一個byte數組裡面,然後輸出來就是。

不多廢話,看代碼:

private void getMACAddr()

    throws SocketException, UnknownHostException {

  // 獲得IP

  NetworkInterface netInterface =

    NetworkInterface.getByInetAddress(InetAddress.getLocalHost());

  // 獲得Mac地址的byte數組

  byte[] macAddr = netInterface.getHardwareAddress();

  System.out.print("MAC Addr:\t");

  // 循環輸出

  for (byte b : macAddr) {

    // 這裡的toHexString()是自己寫的格式化輸出的方法,見下步。

    System.out.print(toHexString(b) + " ");

  }

}

Java如何獲得本機MAC地址

上一步驟中,為什麼會出現一個toHexString()方法呢?

  因為可能10進制轉16進制時候可能會出現單字符,

所以,如果有出現單字符的情況,我們在其前面添加一個“0”做佔位符。

這也是為了視覺的直觀,也夾帶著個人的習慣。

private static String toHexString(int integer) {

  // 將得來的int類型數字轉化為十六進制數

  String str = Integer.toHexString((int) (integer & 0xff));

  // 如果遇到單字符,前置0佔位補滿兩格

  if (str.length() == 1) {

    str = "0" + str;

  }

  return str;

}

Java如何獲得本機MAC地址

然後,我們寫一個簡單的main方法測試一下。

public static void main(String[] args)

       throws SocketException, UnknownHostException {

  new GetMacAddr().getMACAddr();

}

Java如何獲得本機MAC地址

結果無誤,我們得到了本地的MAC地址。

大家一起來試一試吧!

Java如何獲得本機MAC地址

注意事項

編程嘛,大家注意代碼書寫規範啊!

不要變成和筆者一樣的呆子哦~~

相關問題答案