中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

本地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

德江县| 玛纳斯县| 深圳市| 当阳市| 哈密市| 阿拉善右旗| 宜阳县| 大丰市| 晋城| 新龙县| 张家界市| 卢湾区| 喀什市| 双峰县| 阳城县| 鹤壁市| 南投市| 桐城市| 合作市| 通州区| 永城市| 安多县| 乌拉特后旗| 墨竹工卡县| 克东县| 分宜县| 松溪县| 宁阳县| 简阳市| 巩留县| 阜平县| 唐山市| 大连市| 屏东市| 清新县| 涟水县| 塔城市| 青阳县| 弥勒县| 德安县| 临夏县|