在網路技術討論中,MAC 地址是個常被提及卻又容易混淆的概念。究竟什麼是 MAC 地址?它在現代網路架構中扮演什麼角色?本文將為您詳細拆解 MAC 地址的核心知識,並提供實用的查詢與修改技巧。
MAC(Media Access Control)地址,中文稱「媒體存取控制位址」,通俗來說就是網路卡的物理位址。它工作於 OSI 模型的資料鏈路層,用於在區域網路中唯一識別每一台裝置。目前主流的 MAC 地址採用 6 位元組(48 位元)格式,早期曾有 2 位元組(16 位元)版本,現已罕見。
48 位元的 MAC 地址分為兩部分:
在典型的區域網路環境(如校園網)中,裝置透過交換機連接至網際網路,管理中心會分配固定 IP 以便管理。但 IP 易變且難以綁定實體裝置,因此引入 MAC 地址作為硬體層面的唯一標識,防止地址衝突、明確責任歸屬(如追蹤網路犯罪)。
| 特性 | IP 地址 | MAC 地址 |
|---|---|---|
| 層級 | 網路層(第 3 層) | 資料鏈路層(第 2 層) |
| 長度 | IPv4 為 32 位元 | 48 位元 |
| 可變性 | 可手動配置或 DHCP 動態獲取 | 出廠燒錄,理論上不可更改 |
| 記憶難度 | 點分十進制,易記 | 十六進制,難記 |
| 對應關係 | 區域網路中一一對應(透過 ARP 協定) |
根據作業系統版本,常用方法有二:
winipcfg 命令。ipconfig /all,在「實體位址」欄位即可看到。若已配置 IP,亦可用 nbtstat -A 本機IP(僅限 2000/XP 以上)查詢。
nbtstat -A 目標IP(2000/XP 適用),除 MAC 外還能獲取其他 NetBIOS 資訊。ping 目標IP 或主機名,再執行 arp -a 查看 ARP 快取表,即可找到對應 MAC。提醒:僅限學習與合法網管用途,切勿用於非法入侵或偽裝身分。
MAC 地址儲存於網卡 EEPROM 中,廠商通常提供修改工具。即使無專用工具,亦可透過作業系統層面間接修改:網卡發送封包時的來源 MAC 實際由應用程式提供,Windows 中則從登錄檔讀取。
開啟 regedit,定位至:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service\Class\Net\
在 0000、0001、0002 等子鍵中尋找對應網卡的 DriverDesc,新增字串值 NetworkAddress,值為 12 位十六進制(如 000102030405),重啟生效。
路徑為:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E970-E325-11CE-BFC1-08002BE10318}
同樣在 0000、0001、0002 中找到目標網卡,新增 NetworkAddress 字串值,重啟電腦。
# 1. 關閉網卡介面
ifconfig eth0 down
# 2. 修改 MAC
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
# 3. 啟用網卡
ifconfig eth0 up
此外,第三方工具如 Mac2001 亦提供圖形化修改介面。
既然 IP 與 MAC 均可修改,網管如何防禦?核心策略是交換機端口綁定:
import java.io.*;
public class GetMAC {
public static void main(String[] args) {
try {
Process process = Runtime.getRuntime().exec("ipconfig /all");
InputStreamReader ir = new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
String line;
while ((line = input.readLine()) != null) {
if (line.indexOf("Physical Address") > 0) {
String macAddr = line.substring(line.indexOf("-") - 2);
System.out.println("MAC address = [" + macAddr + "]");
}
}
} catch (IOException e) {
System.err.println("IOException " + e.getMessage());
}
}
}
本文系統梳理了 MAC 地址的原理、查詢、修改與防禦,希望能幫助您更透徹地理解網路底層識別機制。