在 Windows 下修改 MAC 地址時,為什麼第 2 個十六進位字元只能是 2、6、A、E 之一?

在網卡設置里修改MAC地址時,如果第二個16進位字元不是2、6、A、E其中之一,則會修改失敗,請問這是什麼原因。

MAC地址_百度百科

注意:在修改無線網卡地址的時候,win7對地址做出一個限制。MAC出廠地址12個數字可以是0-9,A-F任何一個數字,但是在win7軟體修改地址的時候,MAC地址的第二位必須是2,6,A,或者E。

xy:xx:xx:xx:xx:xx

x=0-9,A-F

y=2,6,A或者E


MAC地址一共6個位元組,分成兩段。前三個位元組叫作OUI,用於標記網卡設備的生產商,後三個位元組由生產商自行決定,OUI與生產廠商的對應關係需要網路設備生產商向IEEE的一個專門組織IEEE Registeration Authority購買和註冊,並有這個組織統一管理。

而OUI中,有兩個位是有特殊含義的,即第一個位元組的最低兩位。其中最低位表示MAC地址是單播地址還是多播地址,次低位表示是否由IEEE Registeration Authority統一發放。由該組織統一管理和發放的MAC地址,能夠保證在全球範圍內是唯一的,另外如果不是由IEEE統一管理的那部分MAC地址,作用就像區域網IP一樣,需要用戶自行分配並保證在網路中是唯一的。

所以自行修改的MAC地址,第二個十六進位位(第一位元組的低四位),最低位是0,次低位是1(表示不是由IEEE統一管理髮放的MAC地址),剩下兩個任意,所以是:

0010 - 2

0110 - 6

1010 - A

1110 - E

詳見:MAC address


不是windows的限制,是驅動層的限制。

所有驅動都是通過ndis.sys的NdisReadNetworkAddress獲取mac地址。在msdn上微軟說了,此routine不會對所獲取的mac地址的正確性進行檢驗,也就是說限制不是微軟的,而是驅動層的。


推薦閱讀:

Windows 8 的使用體驗如何?是否值得從 Windows 7 升級?
怎樣安裝 Windows 7 與 Linux 的雙系統?
win10如何更改c盤下的用戶名?
Windows 8.1 系統 System 進程磁碟使用率很高是什麼原因造成的?
Windows 7 中文版命令行如何修改字元編碼為UTF-8?

TAG:MicrosoftWindows | Windows7 | Windows8 |