Extraindo endereços MAC de UUIDs
Pergunta
Um programa que eu trabalho pressupõe que o UUID gerado pela chamada API do Windows RPC UuidCreateSequential () contém o endereço MAC do adaptador Ethernet primária. essa suposição é correta ou devo usar um método diferente para obter o endereço MAC?
Solução
Eu não iria contar com isso - a única razão que UuidCreateSequential tem o endereço MAC é que está tentando garantia de que o UUID é único em toda a rede. Além disso, por que você iria usar uma forma tão estranha para obter um endereço MAC? Use WMI e realmente pedir o endereço MAC em vez de um efeito colateral de uma função de criação de UUID.
Outras dicas
Esta parece ser uma suposição válida. A documentação sobre MSDN diz especificamente isso irá conter o endereço da ethernet cartão na máquina. Ele não mencionou nada sobre um cenário mult-cartão, mas a escolha da placa principal parece ser um salto lógico.
Se você estiver escrevendo código gerenciado, gostaria de usar o NetworkInterface
classe e chamar GetAllNetworkInterfaces()
. Ou a partir do código C ++, chamar GetAdaptersInfo
, que é o que os usos implementação gerenciada.
Mesmo se UuidCreateSequential
funciona para isso, é uma maneira muito obscura para obter a informação, e esconde problemas potenciais, como um computador com mais de um adaptador.
Apenas um UUID versão 1 contém um endereço MAC, e somente se o gerador original tinha acesso ao endereço MAC para começar. Se o gerador original não tem acesso a um endereço MAC, que teria usado 6 bytes aleatórios provenientes de um gerador criptograficamente seguro número aleatório, conforme a secção 4.5 do RFC 4122. Devido a isso, não há garantia de que o endereço MAC dada em um UUID é realmente um endereço MAC.
Na maioria dos casos, a única razão para que alguém poderia precisar para analisar o endereço MAC de um UUID é para fins forenses. Ver, por exemplo os UUIDs incorporados na carga útil documento do Word para o vírus Melissa. Investigadores extraído o endereço MAC a partir dessas IDs e combinados para o endereço MAC do adaptador de rede principal do suspeito.
Se você está tentando obter o endereço MAC do seu próprio computador, há muito melhores maneiras de ir sobre isso.