MAC 地址生成器

生成隨機 MAC 地址,可選格式、數量、單播/多播以及本地管理位。

按需生成隨機 MAC。 以冒號、連字元、空格或 Cisco 點分格式生成一個或多個 MAC 地址,並可控制單播/多播與本地管理位。使用密碼學隨機,在瀏覽器內執行。

MAC 地址的結構

六個位元組,兩個部分

MAC 地址共 48 位,通常寫成六個十六進位制位元組。前三個位元組是組織唯一識別符號(OUI),由 IEEE 出售給硬體廠商;後三個位元組由廠商分配給具體裝置。這就是 MAC 通常可以追溯到製造商的原因——OUI 是公開登錄檔,查詢工具只是拿前三個位元組去比對而已。

書寫形式因生態而異,含義並無區別。冒號分隔(00:1a:2b:3c:4d:5e)是 Unix 和 IEEE 的慣例,連字元(00-1A-2B-3C-4D-5E)是 Windows 的顯示方式,Cisco 則寫成三組四位十六進位制數字並用點分隔(001a.2b3c.4d5e)。三者編碼的是完全相同的 48 位。

第一個位元組裡的兩個標誌位

第一個位元組的最低兩位根本不屬於識別符號本身。第 0 位區分單播與組播:0 表示這一幀發給單個介面,1 表示發給一組介面。這正是 01:00:5e:... 成為 IPv4 組播字首、ff:ff:ff:ff:ff:ff 成為廣播地址的原因——該位被置 1 了。

第 1 位是本地/全域性標誌。清零表示地址來自 IEEE 分配的 OUI;置 1 表示地址是本地分配的,不攜帶任何廠商含義。你自己生成的地址都應當把這一位置 1,這也是本工具生成的位元組第二個十六進位制位總是 2、6、A 或 E 的原因。省掉這一步,測試資料就可能與某個真實廠商的地址段撞車。

隨機 MAC 及其影響

由於每一次 Wi-Fi 探測請求都會明文廣播 MAC 地址,它一度成為跨場所追蹤個人的便利抓手。如今的手機和筆記本預設對每個網路呈現不同的本地管理 MAC,並定期輪換。這挫敗了被動追蹤,但同時也打破了"MAC 是穩定裝置標識"這一假設:基於 MAC 的白名單、DHCP 靜態保留和強制門戶會話,在面對現代客戶端的網路中都需要重新設計。

這裡生成的地址適合用於實驗拓撲、虛擬機器模板、測試資料和文件場景——你需要看起來合理、又保證不屬於任何真實硬體的地址。

開源說明:使用 crypto.getRandomValues 與原生 JavaScript 實現,不依賴第三方庫。

常見問題

「本地管理」是什麼意思?
它會置位第一個八位組的次低位,表示該地址由你自行分配,而不是來自 IEEE 分配的廠商 OUI。凡是自己生成的地址都應該開啟這個選項。
單播和組播有什麼區別?
由第一個八位組的最低位決定。該位為 0 表示單播,定址到單個介面;為 1 表示組播,會被投遞給一組介面。
應該選哪種格式?
冒號分隔是 Linux 和通用網路場景的慣例,連字元在 Windows 上更常見,四位一組的點分形式則是思科的寫法。三者底層位元組完全相同。
生成的地址保證唯一嗎?
不保證。它們來自密碼學隨機源,碰撞機率極低,但沒有任何機制會與你的網路實際比對。大規模部署前請先自行核實。
可以用在真實網路上嗎?
可以,適用於虛擬機器、容器和測試介面,前提是開啟本地管理位,這樣才不會與廠商實際分配的地址衝突。
為什麼需要生成 MAC 地址?
常見場景包括虛擬機器和容器的批次部署、實驗室與測試環境的固定裝置,以及無線客戶端出於隱私考慮的地址隨機化。