2009-08-29 20 views
6

Utilizziamo gli indirizzi MAC per identificare i PC autorizzati a eseguire il software. (non si preoccupano di MAC spoofing; il titolo sono difficili da ottenere :) PC possono avere controller Ethernet multiple (anche noi non ci preoccupiamo il caso in cui non ce n'è uno, non abbiamo incontrato una macchina del genere in 5 anni), e quindi c'è un problema con la scelta affidabile di uno stabile uno.Come ottenere un indirizzo MAC stabile per PC?

Pensavo di averlo inchiodato ma apparentemente no. Usiamo GetAdaptersInfo dal modulo iphlpapi di Microsoft SDK e scendiamo l'elenco. Usiamo l'ultimo adattatore in quanto presumibilmente si tratta della scheda madre del controller Ethernet . Ahimè, abbiamo incontrato un Thinkpad che appare per cambiare quale controller è l'ultima a seconda che sia ancorato o meno.

C'è un modo per trovare in modo affidabile l'indirizzo MAC per la scheda madre del controller Ethernet su un sistema, se esiste? E per quelle schede madri che ne hanno 2 o più, sceglierne una stabile? [Se sapessi che un set era basato sulla scheda madre, posso facilmente scegliere il MAC dell'indirizzo più basso ].

risposta

2

No, non esiste un modo affidabile per farlo. I dongle USB sono economici e facili da usare.

Ho avuto il "piacere" di usare MAC bloccato il software prima e tutto quello che posso dire è non farlo.

+0

Accetto. Se avessimo valutato questo software (ad alcuni ambienti virtuali), lo rifiuteremmo a causa di un sistema di licenze MAC inanimato ... – gbn

+1

Ho avuto il piacere anch'io. Nel mio caso, il software ha scelto un indirizzo MAC "virtuale" creato da un software VPN. Indovina cosa è successo quando ho disinstallato il software VPN? –

+0

I dongle non sono pratici per $ 100 prodotti (di cui abbiamo una varietà). Lavorano per $ 1000,00 prodotti (di cui ne abbiamo alcuni). –

3

È un problema fangoso. Come gestisci la virtualizzazione? Sulla mia macchina ho diversi adattatori Ethernet, solo uno dei quali è in realtà basato su hardware. E le mie macchine virtuali hanno tutti gli indirizzi MAC generati dal software. E, se lo voglio davvero, posso configurare più VM su computer diversi con lo stesso indirizzo MAC (non sulla stessa rete, ovviamente).

+0

D'accordo, non è un metodo di licenza saggio. L'OP dovrebbe implementare un altro sistema. –

+0

E tu suggeriresti cosa, che è la macchina unica? –

1

Non ho una soluzione, ma ci potrebbe essere un altro problema:

Esiste software VPN che crea una scheda di rete virtuale e in modo casuale assegna un nuovo indirizzo MAC di questa carta ogni volta che viene stabilita la connessione VPN.

+0

Quello che voglio è l'indirizzo MAC per il controller ethernet sulla scheda madre. Questo presumibilmente non viene manipolato da VPN o altro. –

2

Non credo che ci sia alcun modo affidabile per determinare quale interfaccia è "stabile". Certamente non senza scavare nei dettagli dell'hardware.

Ma cosa succede se ci si avvicina a questo in un modo diverso. È possibile che l'utente scelga l'interfaccia da un elenco all'installazione, che probabilmente non è molto intuitivo. O semplicemente registra tutti gli indirizzi MAC nel sistema e autenticati fino a quando uno è ancora attivo.

Inoltre, per riferimento, l'ordine restituito da GetAdaptersInfo può essere modificato dall'utente dal menu Impostazioni avanzate in Connessioni di rete.

+0

Il fatto che gli utenti li mescolino non mi rende felice. Ma probabilmente non è un grosso problema; quasi nessuno lo farà –

1

Anch'io affrontato lo stesso problema e ha trovato un approccio diverso here.

Windows memorizza la descrizione delle schede di rete fisiche nel registro in HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkCards. La stessa descrizione è anche elencata nel membro "Descrizione" della struttura IP_ADAPTER_INFO. Quindi immagino di poter controllare se questo valore è presente nel registro per determinare se l'indirizzo MAC appartiene o meno a una scheda di rete fisica.

Problemi correlati