java 獲取mac地址的兩種方法(推薦)
我在網(wǎng)上找了一下獲取mac地址的方法,找了兩種比較不太一樣的方法。
第一種
public static void main(String[] args) throws Exception { InetAddress ia = InetAddress.getLocalHost(); System.out.println(getMACAddress(ia)); }
private static String getMACAddress(InetAddress ia) throws Exception { // 獲得網(wǎng)絡(luò)接口對象(即網(wǎng)卡),并得到mac地址,mac地址存在于一個byte數(shù)組中。 byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress(); // 下面代碼是把mac地址拼裝成String StringBuffer sb = new StringBuffer(); for (int i = 0; i < mac.length; i++) { if (i != 0) { sb.append("-"); } // mac[i] & 0xFF 是為了把byte轉(zhuǎn)化為正整數(shù) String s = Integer.toHexString(mac[i] & 0xFF); sb.append(s.length() == 1 ? 0 + s : s); } // 把字符串所有小寫字母改為大寫成為正規(guī)的mac地址并返回 return sb.toString().toUpperCase(); }
這種方法貌似是只能取本機的mac地址的。
第二種
public static void main(String[] args) throws Exception { getMac("192.168.1.186"); }
public static String getMac(String ip){ String str = null; String mac = null; try{ Process p = Runtime.getRuntime().exec("nbtstat -A " + ip); InputStreamReader ir = new InputStreamReader(p.getInputStream(),"gbk"); LineNumberReader input = new LineNumberReader(ir); for (; true;) { str = input.readLine(); if (str != null) { if (str.indexOf("MAC 地址") > 1) { mac = str.substring(str.indexOf("MAC 地址") + 9); break; } } } System.out.println(mac); }catch(IOException e){ e.printStackTrace(); } return mac; }
這種方法是我比較喜歡的,不過這種方法呢在時間效率上可能會稍差一些。這個里面有一個比較需要注意的點就是數(shù)據(jù)流那里記得要改成gbk格式的,不然讀出來的數(shù)據(jù)是亂碼的,后面就會無法進行了,然后識別字段那里,可能有一些會是"MAC address",所以可能需要自己做一些調(diào)整。
以上就是小編為大家?guī)淼膉ava 獲取mac地址的兩種方法(推薦)全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
SSM使用mybatis分頁插件pagehepler實現(xiàn)分頁示例
本篇文章主要介紹了SSM使用mybatis分頁插件pagehepler實現(xiàn)分頁示例,使用分頁插件的原因,簡化了sql代碼的寫法,實現(xiàn)較好的物理分頁,非常具有實用價值,需要的朋友可以參考下2018-03-03Spring/SpringBoot?@RequestParam注解無法讀取application/json格式數(shù)據(jù)問題
RequestParam用于將指定的請求參數(shù)賦值給方法中的形參,可以接受簡單類型屬性,也可以接受對象類型,一般用于GET請求,下面這篇文章主要給大家介紹了關(guān)于Spring/SpringBoot?@RequestParam注解無法讀取application/json格式數(shù)據(jù)問題解決的相關(guān)資料,需要的朋友可以參考下2022-10-10基于Transactional事務(wù)的使用以及注意說明
這篇文章主要介紹了Transactional事務(wù)的使用以及注意說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07springboot中server.ssl.key-store配置路徑的問題小結(jié)
這篇文章主要介紹了springboot中server.ssl.key-store配置路徑的問題,文中還記錄了Spring Boot SSL(https)實例,介紹在web程序中使用自簽名的SSL(HTTPS)證書及創(chuàng)建SSL認證,感興趣的朋友跟隨小編一起看看吧2024-02-02