Zmiana adresu MAC karty WiFi

   Czasami pojawia się konieczność zmiany adresu MAC karty sieciowej. Pod Windows nie jest to trudne. W menedżerze urządzeń, we właściwościach karty sieciowej, w zakładce Zaawansowane trzeba wybrać właściwość Network Address (lub podobną, np. Locally Administered Address) i wpisać adres MAC. I ogólnie spoko, dopóki to nie jest karta WiFi.

Wtedy okazuje się, że wciąż widoczny jest stary adres, a wpisana wartość jest ignorowana. Na forach można spotkać często opis tego problemu, w odpowiedziach wypowiadają się jednak osoby, które nie mają pojęcia o czym piszą. Podają różne sposoby ustawiania MACa nie przyjmując do wiadomości, że w przypadku WiFi sytuacja może być trochę inna niż przy karcie przewodowej. Tym bardziej, że najprawdopodobniej problemy zaczynają się od Windows 7 i nie było ich w XP i Viście (nie sprawdzałem tego dokładnie, możliwe, że ma znaczenie wersja sterownika).

W każdym razie w Windows 7 sytuacja jest taka, że można sobie zmienić adres MAC dla karty bezprzewodowej ale nie może być to adres dowolny. Sprawa dotyczy młodszych bitów pierwszego bajtu adresu, czyli w adresie XY-XX-XX-XX-XX-XX interesuje nas Y - młodszy (mniej znaczący) półbajt pierwszego bajtu. Te cztery bity są oznaczone jako kmnp. Bit n oznacza, czy adres jest globany (oryginalny - 0), czy też lokalny (zmieniony ręcznie - 1). Ponieważ modyfikujemy oryginalny adres, bit ten musi być ustawiony (1). Bit p mówi, czy mamy do czynienia z adresem unicastowym (0) czy multicastowym (1). Nie bawimy się w multicasty, więc musimy mieć ten bit ustawiony na 0. W ten oto sposób w młodszym półbajcie mamy do dyspozycji tylko dwa bity, co daje nam cztery kombinacje:

X2-XX-XX-XX-XX-XX
X6-XX-XX-XX-XX-XX
XA-XX-XX-XX-XX-XX
XE-XX-XX-XX-XX-XX

Skąd 2, 6, A i E? Bo mając na najmłodszych miejscach bity 10 zostają nam tylko takie kombinacje: 0010, 0110, 1010 i 1110. Dziesiętnie daje nam to 2, 6, 10 i 14, czyli szesntakowo właśnie 2,6, A i E. Tak więc pod Windows 7 można zmienić adres MAC sieciówki bezprzewodowej, pamiętać tylko należy, że druga cyfra (w zapisie szesnastkowym) musi być jedną z podanych.