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ò)接口對(duì)象(即網(wǎng)卡),并得到mac地址,mac地址存在于一個(gè)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(); }
這種方法貌似是只能取本機(jī)的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; }
這種方法是我比較喜歡的,不過(guò)這種方法呢在時(shí)間效率上可能會(huì)稍差一些。這個(gè)里面有一個(gè)比較需要注意的點(diǎn)就是數(shù)據(jù)流那里記得要改成gbk格式的,不然讀出來(lái)的數(shù)據(jù)是亂碼的,后面就會(huì)無(wú)法進(jìn)行了,然后識(shí)別字段那里,可能有一些會(huì)是"MAC address",所以可能需要自己做一些調(diào)整。
以上就是小編為大家?guī)?lái)的java 獲取mac地址的兩種方法(推薦)全部?jī)?nèi)容了,希望大家多多支持腳本之家~
- JAVA獲取本地MAC地址的方法
- JAVA如何獲取客戶端IP地址和MAC地址
- java根據(jù)本地IP獲取mac地址的方法
- java 獲取用戶的MAC地址多種方法實(shí)例詳解
- Java 獲取本機(jī)的IP與MAC地址實(shí)現(xiàn)詳解
- java編程實(shí)現(xiàn)獲取服務(wù)器IP地址及MAC地址的方法
- Java編程實(shí)現(xiàn)遍歷兩個(gè)MAC地址之間所有MAC的方法
- java實(shí)現(xiàn)獲取用戶的MAC地址
- Java獲取mac地址的方法
- java通過(guò)ip獲取客戶端Mac地址的小例子
- 詳解Java如何跨平臺(tái)獲取MAC地址
相關(guān)文章
SSM使用mybatis分頁(yè)插件pagehepler實(shí)現(xiàn)分頁(yè)示例
本篇文章主要介紹了SSM使用mybatis分頁(yè)插件pagehepler實(shí)現(xiàn)分頁(yè)示例,使用分頁(yè)插件的原因,簡(jiǎn)化了sql代碼的寫法,實(shí)現(xiàn)較好的物理分頁(yè),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-03-03Spring/SpringBoot?@RequestParam注解無(wú)法讀取application/json格式數(shù)據(jù)問(wèn)題
RequestParam用于將指定的請(qǐng)求參數(shù)賦值給方法中的形參,可以接受簡(jiǎn)單類型屬性,也可以接受對(duì)象類型,一般用于GET請(qǐng)求,下面這篇文章主要給大家介紹了關(guān)于Spring/SpringBoot?@RequestParam注解無(wú)法讀取application/json格式數(shù)據(jù)問(wèn)題解決的相關(guān)資料,需要的朋友可以參考下2022-10-10JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)劃分原理詳解
這篇文章主要介紹了JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)劃分原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05基于Transactional事務(wù)的使用以及注意說(shuō)明
這篇文章主要介紹了Transactional事務(wù)的使用以及注意說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Jenkins遠(yuǎn)程部署war包過(guò)程圖解
這篇文章主要介紹了Jenkins遠(yuǎn)程部署war包過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05springboot中server.ssl.key-store配置路徑的問(wèn)題小結(jié)
這篇文章主要介紹了springboot中server.ssl.key-store配置路徑的問(wèn)題,文中還記錄了Spring Boot SSL(https)實(shí)例,介紹在web程序中使用自簽名的SSL(HTTPS)證書及創(chuàng)建SSL認(rèn)證,感興趣的朋友跟隨小編一起看看吧2024-02-02springboot打jar包之后下載文件的路徑問(wèn)題
這篇文章主要介紹了springboot打jar包之后下載文件的路徑問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07