2009-08-29 9 views
6

Wir verwenden MAC-Adressen, um PCs als lizenziert für die Ausführung von Software zu identifizieren. (kümmern sich nicht um MAC Spoofing; Lizenzen sind schwer zu bekommen :) PCs können mehrere Ethernet-Controller haben (wir machen uns auch keine Sorgen über den Fall, wo es keinen gibt; wir haben eine solche Maschine nicht getroffen in 5 Jahren), und so gibt es ein Problem mit der zuverlässigen Auswahl eines stabilen eins.Wie bekomme ich eine stabile MAC-Adresse für den PC?

Ich dachte, wir hätten dies genagelt, aber anscheinend nicht. Wir verwenden GetAdaptersInfo aus dem Microsoft SDK iphlpapi-Modul, und gehen Sie die Liste herunter. Wir verwenden den letzten Adapter in der wahrscheinlich als das Motherboard Ethernet-Controller. Leider sind wir auf ein Thinkpad gestoßen, das erscheint, um zu ändern, welcher Controller zuletzt abhängig davon ist, ob es angedockt ist oder nicht.

Gibt es eine Möglichkeit, die MAC-Adresse für das Motherboard Ethernet-Controller auf einem System zu finden, wenn es existiert? Und für diese Motherboards, die 2 oder mehr haben, wählen Sie eine von denen, die stabil ist? [Wenn ich wüsste, dass ein Set Motherboard-basiert war, kann ich einfach die niedrigste Adresse MAC auswählen].

Antwort

2

Nein - es gibt keinen zuverlässigen Weg, dies zu tun. USB-Dongles sind billig und einfach - verwenden Sie sie.

Ich hatte das "Vergnügen", MAC gesperrte Software vorher zu verwenden, und alles, was ich sagen kann, ist es nicht tun.

+0

Zustimmen. Wenn wir diese Software (und mehrere virtuelle Umgebungen) überprüfen würden, würden wir dies wegen eines inaktiven MAC-Lizenzierungssystems ablehnen ... – gbn

+1

Ich hatte das Vergnügen selbst. In meinem Fall wählte die Software eine "virtuelle" MAC-Adresse, die von einer VPN-Software erstellt wurde. Raten Sie, was passiert ist, als ich die VPN-Software deinstalliert habe? –

+0

Dongles sind nicht praktisch für $ 100 Produkte (von denen wir eine Vielzahl haben). Sie arbeiten für $ 1000,00 Produkte (von denen wir ein paar haben). –

3

Es ist ein schlammiges Problem. Wie gehen Sie mit Virtualisierung um? Auf meinem Rechner habe ich mehrere Ethernet-Adapter, von denen nur einer tatsächlich hardwarebasiert ist. Und meine virtuellen Maschinen haben alle software-generierte MAC-Adressen. Und wenn ich das wirklich möchte, kann ich mehrere VMs auf verschiedenen Computern mit derselben MAC-Adresse einrichten (natürlich nicht im selben Netzwerk).

+0

Einverstanden, es ist keine weise Lizenzierungsmethode. Das OP sollte ein anderes System implementieren. –

+0

Und Sie würden vorschlagen, was, Maschine einzigartig ist? –

1

Ich habe keine Lösung, aber es könnte eine andere Frage sein:

Es existiert VPN-Software, die eine virtuelle Netzwerkkarte angelegt und mit dem Zufallsprinzip eine neue MAC-Adresse zu dieser Karte jedes Mal, wenn die VPN-Verbindung hergestellt ist.

+0

Was ich will, ist die MAC-Adresse für den Ethernet-Controller auf dem Motherboard. Das wird vermutlich nicht von VPNs oder irgendetwas anderem manipuliert. –

2

Ich glaube nicht, dass es eine zuverlässige Möglichkeit gibt zu bestimmen, welche Schnittstelle "stabil" ist. Sicherlich nicht ohne auf die Hardware-Details einzugehen.

Aber was ist, wenn Sie sich auf eine andere Weise nähern. Sie können den Benutzer aus einer Liste bei der Installation auswählen, die wahrscheinlich nicht sehr benutzerfreundlich ist. Oder notieren Sie einfach alle MAC-Adressen im System und authentifizieren Sie sich, solange Sie noch aktiv sind.

Auch als Referenz kann die Reihenfolge, die GetAdaptersInfo zurückgibt, vom Benutzer über das Menü Erweiterte Einstellungen in Netzwerkverbindungen geändert werden.

+0

Das bisschen über Benutzer, die sie herum mischen, macht mich nicht glücklich. Aber wahrscheinlich kein großes Problem; fast niemand wird es tun. –

1

Ich auch konfrontiert das gleiche Problem und fand einen anderen Ansatz here.

Windows speichert die Beschreibung der physischen Netzwerkkarten in der Registrierung unter HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkCards. Die gleiche Beschreibung wird auch im Member "Description" der Struktur IP_ADAPTER_INFO aufgeführt. Ich kann also prüfen, ob dieser Wert in der Registry steht, um festzustellen, ob die MAC-Adresse zu einer physischen Netzwerkkarte gehört oder nicht.