QT4.7: MAC-Adresse ändert sich
-
Hi,
durch folgenden Code möchte ich gerne die MAC-Adresse des hauptsächlich genutzten (eigentlich jeder, solange er derselbe bleibt) Netzwerkadapters auslesen:
QString getNetworkCode() { // First, get mac address QString macAddress; typedef QList<QNetworkInterface> Interfaces; Interfaces interfaces = QNetworkInterface::allInterfaces(); for(Interfaces::const_iterator it = interfaces.begin(); it != interfaces.end(); ++it) { // return just the first non-loopback MAC address if (!(it->flags() & QNetworkInterface::IsLoopBack)) { macAddress = it->hardwareAddress(); break; } } return macAddress; }
U.a. das soll für Maschinencode-Generierung genutzt werden, d.h. ich kann es leider nicht gut reproduzieren. Klar ist jedoch, dass sich bei vielen Benutzern ohne ihr eigenes Zutun die Ausgabe dieser Funktion verändert. Weder werden Adapter geändert, noch wird die MAC-Adresse manuell manipuliert, noch wird sonst irgendetwas getan.
Einziger Knackpunkt: Viele nutzen vermutlich manchmal LAN, manchmal WLAN und manchmal gar kein Internet.
Wie kriege ich es hin, dass ich unabhängig der aktuellen Nutzungsart immer exakt einen Netzwerkadapter ansprechen kann, sodass die MAC-Adresse ohne Änderung des Nutzers am Netzwerkadapter konstant bleibt?
Freue mich sehr auf Antworten und beste Grüße!
-
return just the first non-loopback MAC address
Naja die reihenfolge, wie sich deine Adapter melden ist nicht bestimmt.
des hauptsächlich genutzten
Wie bestimmst du den ? Es impliziert auch, das Du ne Statistik erstellst/anzapfst. Muss das wirklich sein ?
Der erste in der Liste ist es definitiv nichtwenn du rechner darueber wiedererkennen willst, musst das schon cleverer anstellen.
Namen des interfaces mitspeichern ???
Mehr infos ueber den Adapter bekommen ... um WLAN von LAN unterscheiden zu können ...Ciao ...
-
Wie gesagt, ich will eigentlich nur einen bestimmten. Es ist total egal, welcher, aber es sollte immer derselbe je Rechner sein.
Name abspeichern hm... gefällt mir. Jetzt las ich jedoch, dass das Teil anscheinend nur die Adapter liefert, welche "up" sind ( http://comments.gmane.org/gmane.comp.lib.qt.general/18737 ). Dann wäre der gemerkte Adapter ja vielleicht gar nicht dabei. Ohne Internet evtl. gar keiner? Ich muss das wohl wirklich Mal mehr selbst testen.
-
Wozu soll sowas gut sein? Das schreit doch geradezu nach zukünftigen Problemen, wenn du irgendwas übersehen hast. Als Programm kann dir die MAC-Adresse doch völlig egal sein, sofern du nicht gerade Netzwerkinterfaces konfigurieren willst. Und für letzteres gibt es meist schon bessere Programme.
-
Speichere lieber in einer DB die Liste der Mac Adressen, da kannst du dann auch einen Counter dazu speichern, und so die "häufigsten" Mac Adressen erfahren.
Zur Identifikation eines PCs sind Mac Adressen heute aber nicht mehr sehr nützlich...
-
Die häufigsten MAC-Adressen sind aber nicht so nützlich, ich hätte gerne eine invariante MAC-Adresse (natürlich änderbar vom Benutzer, aber ich hätte zumindest gern immer die vom gleichen Device).
Zur Identifikation eines PCs sind Mac Adressen heute aber nicht mehr sehr nützlich...
Ja, ich nutze das iVm der Volumeinformation einer Festplattenpartition (WinAPI
GetVolumeInformation
). Das war bisher immer eindeutig (nur eben wegen der MAC-Adresse nicht konstant, was aber nicht schlimm ist). Oder ist Partitions-ID ausreichend? Was kann ich zur Identifikation sonst gut nutzen?
-
Diese Frage hab ich mir auch schon gestellt. Durch VMs gibts eigentlich nichts, was zuverlässig ist.
Hardware USB Dongles wären noch eine Alternative, aber dass lohnt meistens nicht den Aufwand, und ist nicht wirklich benutzer-freundlich.Wenn es um kommerzielle Software geht:
Es gibt SDKs und die dazu gehörigen Stores von Intel/MS/Ubuntu, wo du deine App verkaufen kannst.
30% bleiben dann aber beim Ladenbesitzer, und mich stört dieses App Modell eigentlich.Alternative ist eine Art Update Lizenz, wo es für jede Installation einen Schlüssel gibt, was z.b. eine Zufallszahl sein könnte.
Der Update Server rückt das Update jetzt nur 1 (oder 2,3,4) mal pro Schlüssel heraus. Danach wird dieser gesperrt.
Die Software bleibt dadurch kopiertbar, aber Updates nicht unbedingt.Ansonsten, DRM ist scheiße, vertrau deinen Anwendern
-
Hi,
ja, die haben eh mein Vertrauen, der Schutz ist minimalistisch und wird auch nicht im großen Stil geknackt (soweit ich weiß ;)).
Es geht aber auch darum, dass ich z.B. auf Anfrage eine Trial verlängern kann, wofür die mir dann ihren Maschinencode schicken, sodass ich das umstelle. Auch hierfür benötige ich die Daten, die dann halt einfach eindeutig sein sollten.