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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top