Java獲得本地MAC地址的方式有很多很多。
這裡只需要配置好Java環境就好。
也就是說,不需要第三方插件,不需要CMD操作。
下面跟我來,我演示給大家看~
工具/原料
一臺配置好java環境的可以上網的電腦
Java獲取本地Mac地址
首先,創建工程,包,和一個類。
在此不加詳述,我們直接看代碼。
這裡,我把這個類命名為GetMacAddr
這裡,最最關鍵的就是這裡這個方法。
我們通過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) + " ");
}
}
上一步驟中,為什麼會出現一個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;
}
然後,我們寫一個簡單的main方法測試一下。
public static void main(String[] args)
throws SocketException, UnknownHostException {
new GetMacAddr().getMACAddr();
}
結果無誤,我們得到了本地的MAC地址。
大家一起來試一試吧!
注意事項
編程嘛,大家注意代碼書寫規範啊!
不要變成和筆者一樣的呆子哦~~