91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

本地MAC地址如何利用JAVA進行獲取

發布時間:2020-11-27 15:01:46 來源:億速云 閱讀:202 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關本地MAC地址如何利用JAVA進行獲取,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

InetAddress對象

此類表示Internet協議(IP)地址。

IP地址是由IP使用的32位或128位無符號數字,構建UDP和TCP協議的低級協議。 IP地址結構由定義RFC 790: Assigned Numbers , RFC 1918: Address Allocation for Private Internets , RFC 2365: Administratively Scoped IP Multicast和RFC 2373: IP Version 6 Addressing Architecture 。 InetAddress的一個實例由一個IP地址和可能的相應主機名組成(取決于它是用主機名構造還是已經完成了反向主機名解析)。

本地MAC地址如何利用JAVA進行獲取

NetworkInterface對象

此類表示由名稱組成的網絡接口和分配給此接口的IP地址列表。 用于標識組播組所在的本地接口。 接口通常由諸如“le0”的名稱所知。

本地MAC地址如何利用JAVA進行獲取

代碼

/**
	 * @Title: getMACAddress
	 * @Description: 通過InetAddress對象獲取MAC地址
	 * @param inetAddress
	 * @return
	 * @throws Exception String
	 * @author: wangyk
	 * @date: 2020年11月23日 上午10:24:42
	 * @version: 2.0.1
	 */
	private static String getMACAddress(InetAddress inetAddress) throws Exception {
		// 獲得網絡接口對象(即網卡),并得到mac地址,mac地址存在于一個byte數組中。
		byte[] mac = NetworkInterface.getByInetAddress(inetAddress).getHardwareAddress();
		// 下面代碼是把mac地址拼裝成String
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < mac.length; i++) {
			if (i != 0) {
				sb.append("-");
			}
			// mac[i] & 0xFF 是為了把byte轉化為正整數
			String s = Integer.toHexString(mac[i] & 0xFF);
			sb.append(s.length() == 1 ? 0 + s : s);
		}
		// 把字符串所有小寫字母改為大寫成為正規的mac地址并返回
		return sb.toString().toUpperCase();
	}

演示

/** 
 * @Title: Test.java
 * @Description: 測試獲取本地ip
 * @author: wangyk
 * @date: 2020年11月23日 上午10:21:13
 * @version: 2.0.1
*/
package com.yike.datamigration;

import java.net.InetAddress;
import java.net.NetworkInterface;

/**
 * @Title: Test.java
 * @Description: 測試獲取本地ip
 * @author: wangyk
 * @date: 2020年11月23日 上午10:21:13
 * @version: 2.0.1
 */
public class Test {

	/**
	 * @Title: main
	 * @Description: 程序的入口
	 * @param args
	 * @throws Exception void
	 * @author: wangyk
	 * @date: 2020年11月23日 上午10:25:25
	 * @version: 2.0.1
	 */
	public static void main(String[] args) throws Exception {
		// 獲取本機的InetAddress對象
		InetAddress localHost = InetAddress.getLocalHost();
		// 記錄開始時間
		long start = System.currentTimeMillis();
		// 測試獲取100次的執行時間
		for (int i = 0; i < 100; i++) {
			String mac = getMACAddress(localHost);
			System.out.println(i + "	" + mac);
		}
		// 記錄結束時間
		long end = System.currentTimeMillis();
		System.out.println("總耗時:	" + (end - start));
	}

	/**
	 * @Title: getMACAddress
	 * @Description: 通過InetAddress對象獲取MAC地址
	 * @param inetAddress
	 * @return
	 * @throws Exception String
	 * @author: wangyk
	 * @date: 2020年11月23日 上午10:24:42
	 * @version: 2.0.1
	 */
	private static String getMACAddress(InetAddress inetAddress) throws Exception {
		// 獲得網絡接口對象(即網卡),并得到mac地址,mac地址存在于一個byte數組中。
		byte[] mac = NetworkInterface.getByInetAddress(inetAddress).getHardwareAddress();
		// 下面代碼是把mac地址拼裝成String
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < mac.length; i++) {
			if (i != 0) {
				sb.append("-");
			}
			// mac[i] & 0xFF 是為了把byte轉化為正整數
			String s = Integer.toHexString(mac[i] & 0xFF);
			sb.append(s.length() == 1 ? 0 + s : s);
		}
		// 把字符串所有小寫字母改為大寫成為正規的mac地址并返回
		return sb.toString().toUpperCase();
	}

}

運行結果:

本地MAC地址如何利用JAVA進行獲取

建議

從運行結果來看,java獲取本地MAC地址還是挺慢的。因為MAC不會輕易改變,所以可以考慮在項目運行時獲取一次MAC地址,然后存放到緩存中,用到MAC地址時從緩存中取,提高效率。

關于本地MAC地址如何利用JAVA進行獲取就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通榆县| 平遥县| 东源县| 延安市| 吉首市| 福泉市| 望谟县| 绵阳市| 龙游县| 静海县| 白河县| 海南省| 阳信县| 崇州市| 南靖县| 如东县| 延安市| 灯塔市| 璧山县| 南陵县| 通海县| 合肥市| 宜宾市| 从江县| 北安市| 柳州市| 马山县| 永胜县| 濮阳市| 舞钢市| 肇源县| 明光市| 栾城县| 中西区| 苍梧县| 白山市| 九龙城区| 洪湖市| 大石桥市| 西宁市| 大田县|