Как получить аппаратный MAC-адрес в Windows - PullRequest
14 голосов
/ 05 мая 2009

Я пытаюсь получить MAC-адрес из сетевого адаптера - есть несколько способов его получить, в этой статье рассматриваются наиболее распространенные:

http://www.codeguru.com/Cpp/I-N/network/networkinformation/article.php/c5451

В настоящее время я использую метод GetAdaptersInfo, который кажется наиболее пуленепробиваемым, но если MAC-адрес был задан через реестр:

http://www.mydigitallife.info/2008/06/30/how-to-change-or-spoof-mac-address-in-windows-xp-vista-server-20032008-mac-os-x-unix-and-linux/

Затем он сообщает MAC-адрес, на который он был изменен. Единственный способ найти настоящий MAC - это удалить запись реестра, перезапустить NIC, получить MAC через GetAdaptersInfo, затем заменить запись реестра и перезапустить NIC. Несмотря на то, что он выполняет свою работу, он вряд ли прозрачен для пользователя.

Существуют ли какие-либо другие методы, с которыми кто-либо знаком, которые будут возвращать аппаратный MAC-адрес независимо от того, на что настроен реестр? В идеале я хотел бы, чтобы решение работало на XP и выше.

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 05 мая 2009

Я предполагаю, что в связанной статье CodeGuru решение Miniport, вероятно, преодолеет проблему, которую вы описываете, хотя и болезненно для реализации. Причина, по которой я думаю, заключается в том, что в прошлом я сам использовал решение GetAdaptersInfo и заметил, что MAC-адрес изменится без перезагрузки при добавлении адаптера, например, адаптер Bluetooth, обеспечивающий услуги PAN.

Возможно, вместо перезагрузки после изменения настроек реестра, вы можете попытаться остановить и перезапустить соответствующие сетевые службы. Вы можете легко проверить это вручную, прежде чем искать программное решение.

(н.б. все вышеперечисленное - догадка. Если вы попробуете это, и это сработает, возможно, добавьте пост для тех, кто пытается сделать то же самое в будущем).

0 голосов
/ 18 июня 2014

WMI можно использовать для перечисления Win32_NetworkAdapter экземпляров и просмотра свойства MACAddress. Основной проблемой этого метода является поиск подходящего экземпляра адаптера, если у вас установлено несколько активных адаптеров, например на ноутбуке с беспроводным подключением.

0 голосов
/ 05 мая 2009

Разобрать вывод ipconfig /all

...