Извлечение MAC-адресов из UUID - PullRequest
       15

Извлечение MAC-адресов из UUID

3 голосов
/ 01 декабря 2008

Программа, над которой я работаю, предполагает, что UUID, сгенерированный вызовом Windows RPC API UuidCreateSequential (), содержит MAC-адрес основного адаптера Ethernet. Это предположение правильно или я должен использовать другой метод, чтобы получить MAC-адрес?

Ответы [ 4 ]

5 голосов
/ 01 декабря 2008

Я бы не стал полагаться на это - единственная причина, по которой UuidCreateSequential имеет MAC-адрес, заключается в том, что он пытается гарантировать, что UUID уникален в сети. Кроме того, почему вы используете такой странный способ получить MAC-адрес? Используйте WMI и на самом деле запрашивайте MAC-адрес вместо побочного эффекта от функции создания UUID.

4 голосов
/ 01 декабря 2008

Это правильное предположение. В документации на MSDN конкретно указано, что в ней будет указан адрес сетевой карты на машине. Он не упоминает ничего о сценарии с несколькими картами, но выбор основной карты выглядит логичным скачком.

2 голосов
/ 01 декабря 2008

Если вы пишете управляемый код, я бы использовал класс NetworkInterface и позвонил бы GetAllNetworkInterfaces(). Или из кода C ++ вызовите GetAdaptersInfo, что и используется управляемой реализацией.

Даже если UuidCreateSequential сработает, это довольно непонятный способ получения информации и скрывает потенциальные проблемы, такие как компьютер с более чем одним адаптером.

1 голос
/ 24 апреля 2009

Только UUID версии 1 содержит MAC-адрес, и только если исходный генератор имел доступ к MAC-адресу для начала. Если исходный генератор не имел доступа к MAC-адресу, он использовал бы 6 случайных байтов, полученных из криптографически безопасного генератора случайных чисел, в соответствии с разделом 4.5 RFC 4122. Из-за этого нет гарантии, что MAC-адрес данный в UUID на самом деле является MAC-адресом.

В большинстве случаев единственной причиной, по которой кому-либо потребуется анализировать MAC-адрес по UUID, является криминалистическая проверка. Посмотрите, например, UUID, встроенные в документ Word для вируса Мелисса. Следователи извлекли MAC-адрес из этих идентификаторов и сопоставили его с MAC-адресом основного сетевого адаптера подозреваемого.

Если вы пытаетесь получить MAC-адрес своего собственного компьютера, есть гораздо лучшие способы сделать это.

...