Domanda

Un programma su cui lavoro presuppone che l'UUID generato dalla chiamata dell'API RPC di Windows UuidCreateSequential () contenga l'indirizzo MAC dell'adattatore Ethernet primario. Questo assunto è corretto o dovrei usare un metodo diverso per ottenere l'indirizzo MAC?

È stato utile?

Soluzione

Non mi affiderei a questo: l'unica ragione per cui UuidCreateSequential ha l'indirizzo MAC è che sta cercando di garantire che l'UUID sia univoco in tutta la rete. Inoltre, perché dovresti usare un modo così strano per ottenere un indirizzo MAC? Usa WMI e in realtà chiedi l'indirizzo MAC invece di un effetto collaterale di una funzione di creazione UUID.

Altri suggerimenti

Questo sembra essere un presupposto valido. La documentazione su MSDN specifica che questo conterrà l'indirizzo dell'ethernet carta sulla macchina. Non menziona nulla di uno scenario multi-card, ma scegliere la carta principale sembra essere un salto logico.

Se stai scrivendo un codice gestito, utilizzerei NetworkInterface e chiama GetAllNetworkInterfaces () . Oppure dal codice C ++, chiama GetAdaptersInfo , che utilizza l'implementazione gestita.

Anche se UuidCreateSequential funziona per questo, è un modo piuttosto oscuro per ottenere le informazioni e nasconde potenziali problemi come un computer con più di un adattatore.

Solo un UUID versione 1 contiene un indirizzo MAC, e solo se il generatore originale aveva accesso all'indirizzo MAC per cominciare. Se il generatore originale non avesse avuto accesso a un indirizzo MAC, avrebbe utilizzato 6 byte casuali provenienti da un generatore di numeri casuali crittograficamente sicuro, come indicato nella sezione 4.5 di RFC 4122. Per questo motivo, non vi è alcuna garanzia che l'indirizzo MAC dato in un UUID è in realtà un indirizzo MAC.

Nella maggior parte dei casi, l'unica ragione per cui qualcuno avrebbe mai bisogno di analizzare l'indirizzo MAC da un UUID è a fini forensi. Vedi ad esempio gli UUID incorporati nel payload del documento Word per il virus Melissa. Gli investigatori hanno estratto l'indirizzo MAC da questi ID e lo hanno abbinato all'indirizzo MAC dell'adattatore di rete principale del sospetto.

Se stai cercando di ottenere l'indirizzo MAC del tuo computer, ci sono modi molto migliori per farlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top