AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi MAC Adresse aller Netzwerk Karten ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

MAC Adresse aller Netzwerk Karten ermitteln

Ein Thema von renekr · begonnen am 22. Mär 2006 · letzter Beitrag vom 27. Apr 2007
Antwort Antwort
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#1

Re: MAC Adresse aller Netzwerk Karten ermitteln

  Alt 27. Apr 2007, 15:11
glaube luckie hatte mal was gebastelt wo man bios infos auslesen kann
unter anderen die "Universal Unique ID"
die sieht so aus und ist auch immer anders
CC 28 4A B1 E8 45 DA 11 A4 B1 1B 87 B0 89 E7 6B

oder über die CPU ID

Delphi-Quellcode:
const
   ID_BIT = $200000; // EFLAGS ID bit
type
TCPUID = array[1..4] of Longint;
function IsCPUID_Available : Boolean; register;
   asm
    PUSHFD {direct access to flags no possible, only via stack}
    POP EAX {flags to EAX}
    MOV EDX,EAX {save current flags}
    XOR EAX,ID_BIT {not ID bit}
    PUSH EAX {onto stack}
    POPFD {from stack to flags, with not ID bit}
    PUSHFD {back to stack}
    POP EAX {get back to EAX}
    XOR EAX,EDX {check if ID bit affected}
    JZ @exit {no, CPUID not availavle}
    MOV AL,True {Result=True}
    @exit:
  end;

function GetCPUID: TCPUID; assembler; register;
    asm
    PUSH EBX {Save affected register}
    PUSH EDI
    MOV EDI,EAX {@Resukt}
    MOV EAX,1
    DW $A20F {CPUID Command}
    STOSD {CPUID[1]}
    MOV EAX,EBX
    STOSD {CPUID[2]}
    MOV EAX,ECX
    STOSD {CPUID[3]}
    MOV EAX,EDX
    STOSD {CPUID[4]}
    POP EDI {Restore registers}
    POP EBX
    end;

function GetCPUInfo: string;
  var
    CPUID: TCPUID;
        I: Integer;
  begin
    for I:=Low(CPUID) to High(CPUID) do CPUID[I]:=-1;
    if IsCPUID_Available then
      begin
         CPUID:= GetCPUID;
         Result:= IntToHex(CPUID[1], 8)
                 +'-'+ IntToHex(CPUID[2], 8)
                 +'-'+ IntToHex(CPUID[3], 8)
                 +'-'+ IntToHex(CPUID[4], 8);
      end
    else Result:='CPUID not available';
  end;
Marcel
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 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