欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 獲取mac地址的兩種方法(推薦)

 更新時間:2016年10月14日 21:15:10   投稿:jingxian  
下面小編就為大家?guī)硪黄猨ava 獲取mac地址的兩種方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

我在網(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)分頁示例

    本篇文章主要介紹了SSM使用mybatis分頁插件pagehepler實現(xiàn)分頁示例,使用分頁插件的原因,簡化了sql代碼的寫法,實現(xiàn)較好的物理分頁,非常具有實用價值,需要的朋友可以參考下
    2018-03-03
  • SpringBoot集成RabbitMQ和概念介紹

    SpringBoot集成RabbitMQ和概念介紹

    這篇文章主要介紹了SpringBoot集成RabbitMQ和概念介紹,RabbitMQ即一個消息隊列,主要是用來實現(xiàn)應(yīng)用程序的異步和解耦,同時也能起到消息緩沖,消息分發(fā)的作用。更多相關(guān)內(nèi)容需要的小伙伴可以參考一下下面文章內(nèi)容
    2022-05-05
  • Spring/SpringBoot?@RequestParam注解無法讀取application/json格式數(shù)據(jù)問題解決

    Spring/SpringBoot?@RequestParam注解無法讀取application/json格式數(shù)據(jù)問題

    RequestParam用于將指定的請求參數(shù)賦值給方法中的形參,可以接受簡單類型屬性,也可以接受對象類型,一般用于GET請求,下面這篇文章主要給大家介紹了關(guān)于Spring/SpringBoot?@RequestParam注解無法讀取application/json格式數(shù)據(jù)問題解決的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • JVM運行時數(shù)據(jù)區(qū)劃分原理詳解

    JVM運行時數(shù)據(jù)區(qū)劃分原理詳解

    這篇文章主要介紹了JVM運行時數(shù)據(jù)區(qū)劃分原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • 基于Transactional事務(wù)的使用以及注意說明

    基于Transactional事務(wù)的使用以及注意說明

    這篇文章主要介紹了Transactional事務(wù)的使用以及注意說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Jenkins遠程部署war包過程圖解

    Jenkins遠程部署war包過程圖解

    這篇文章主要介紹了Jenkins遠程部署war包過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Java死鎖產(chǎn)生原因及示例

    Java死鎖產(chǎn)生原因及示例

    本文主要介紹了Java死鎖產(chǎn)生原因及示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • springboot中server.ssl.key-store配置路徑的問題小結(jié)

    springboot中server.ssl.key-store配置路徑的問題小結(jié)

    這篇文章主要介紹了springboot中server.ssl.key-store配置路徑的問題,文中還記錄了Spring Boot SSL(https)實例,介紹在web程序中使用自簽名的SSL(HTTPS)證書及創(chuàng)建SSL認證,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • springboot打jar包之后下載文件的路徑問題

    springboot打jar包之后下載文件的路徑問題

    這篇文章主要介紹了springboot打jar包之后下載文件的路徑問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 詳解Java中的線程模型與線程調(diào)度

    詳解Java中的線程模型與線程調(diào)度

    這篇文章主要介紹了詳解Java中的線程模型與線程調(diào)度的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-02-02

最新評論