![]() |
MAC ermitteln
Hallo!!
Wie ermittele ich am besten die Mac-Adresse eines Rechners? Oder bzw welche Dll muss ich ensprechen? MfG Master :gruebel: |
Re: MAC ermitteln
Bemüh mal die Suche in der
![]() |
Re: MAC ermitteln
|
Re: MAC ermitteln
Hallo!!
Ich habe in meinen Büchern nochmal geschaut, und bin auf dieses gestossen. Das ist etwas einfacher. Source:
Delphi-Quellcode:
Type
TGUID = Record a ,b, d, m, s : word; Mac : Array[1..16] of byte; end; function CoCreateGuid(var GUID : TGUID): HResult; stdcall; far external 'OLE32.dll'; function GetMacAdress : string; var g: TGUID; i: integer; begin CocreateGuid(g); result := ''; for i:= 1 to 6 do Result := Result + IntToHex(g.Mac[i], 2) + '-'; Result[length(result)] := #0; end; procedure Tfrmmain.btmacClick(Sender: TObject); begin lblmac.Caption:= GetMacAdress; end; Danke! MfG Masterof [edit=Sharky]Delphi-Tags gesetzt. Bitte beim nächsten mal selber machen ;-) Mfg, Sharky[/edit] |
Re: MAC ermitteln
Das hat nur den Nachteil, das das Errgebnis nicht mehr stimmt, wenn der Rechner mehrere Netzwerkkarten oder keine hat. Bei keiner wird der Wert der da rauskommt halt irgendwie Berechnet und wenn man mehrere hat kommt da auch nix Sinnvolles bei raus, weil alle Adressen irgendwie zusammengeschustert werden.
|
Re: MAC ermitteln
Damit ermittelst du aber nicht die Mac-Adresse eines Netzwerkadapters :gruebel:
mit CoCreateGUID erzeugst du siehe SDK Zitat:
|
Re: MAC ermitteln
Die MAC(s), sofern vorhanden, werden da nur mit reingerechnet. Und wenn man nicht die ganze GUID nimmt sondern nur den MAC-Teil hat man in 99% aller Fälle glück und erwischt tatsächlich die eigene MAC, sofern man nur eine Karte im System betreibt.
Wie gesagt: Der Weg über die WMI ist sicherer. Damit bekommt man zu 100% die Info, ob man eine Netzwerkkarte hat und weren MAC's - und kann die sogar den einzelnen Interfaces korrekt zuordnen. |
Re: MAC ermitteln
Moin Phoenix,
Zitat:
Die Funktion CoCreateGuid liefert ja einen Global Unique Identifier zurück, der unabhängig davon ist ob überhaupt eine Netzwerkkarte im Rechner steckt. |
Re: MAC ermitteln
Ein Teil des GUID ist die MAC-Adresse (sofern genau eine Karte vorhanden ist).
Aber wie gesagt: Das ist so ziemlich alles ausser zuverlässig. |
Re: MAC ermitteln
Moin Phoenix,
und welcher Teil der GUID soll das sein? Ich habe genau eine Netzwerkkarte im Rechner und erhalte keine GUID, die auch nur Teile der MAC-Adresse enthält. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz