Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi MAC Adresse aller Netzwerk Karten ermitteln (https://www.delphipraxis.net/65923-mac-adresse-aller-netzwerk-karten-ermitteln.html)

renekr 3. Apr 2006 12:32

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Danke.

Stehe nur a bisserl auf dem Schlauch wie ich die Anzuwenden habe!!

Danke.

Klaus01 3. Apr 2006 13:05

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
habe Dir zu meinem vorherigen Post noch etwas hinzugeschrieben

Grüße
Klaus

renekr 3. Apr 2006 14:13

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Hi,
danke.

habe die ausm Delphi Forum mal getestet und geht soweit.

Habe auch gleich einen Fehler festgestellt das die MAC Adresse zukurz ist.

Danke.

renekr 8. Apr 2006 13:55

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Hi,

erstmal Danke.
Habe nun alles eingebeunden und es geht.

nun habe ich noch eine Spezielle Frage:

Ich bekomme an meinem Laptop 4 NICs zurück.
Mit Loopback usw.

Das is kein thema.

Aber ist das die Korrekte Reihenfolge die man im Windows unter :
Netzerkeinstellungen-Advanced -Advanced Settings unter Adapter und Bindings einstellen kann?
Dort kann man ja die Reihenfolge der Adapter ändern.
Bei mir sind eigentlich max 3 in den Pcs drin ( normal 2 ) und mich würde es Interessieren die Adapter in der Korrekten Windows Reihenfolge auslesen zu können.

Danke.

ich.online 27. Apr 2007 14:20

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Zitat:

Zitat von SirThornberry
ich benutze dafür folgende funktionen:
Delphi-Quellcode:
uses
  [...], nb30, [...]


Da funktioniert bei mir etwas nicht.

Ich habe im Notebook eine feste Karte und eine Wireless.

GetMACAdress liefert die MAC der Wirelesskarte
GetMacAddressCount liefert 1
GetMACAddress(0) liefert die MAC der Wirelesskarte
GetMACAddress(1) liefert mac not found

Die feste Karte ist aktiv, aber kein Kabel dran.

Gruß

K.-D.

Klaus01 27. Apr 2007 14:23

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Zitat:

Zitat von ich.online
Zitat:

Zitat von SirThornberry
ich benutze dafür folgende funktionen:
Delphi-Quellcode:
uses
  [...], nb30, [...]


Da funktioniert bei mir etwas nicht.

Ich habe im Notebook eine feste Karte und eine Wireless.

GetMACAdress liefert die MAC der Wirelesskarte
GetMacAddressCount liefert 1
GetMACAddress(0) liefert die MAC der Wirelesskarte
GetMACAddress(1) liefert mac not found

Die feste Karte ist aktiv, aber kein Kabel dran.

Gruß

K.-D.

Wenn kein Kabel dran ist, ist das netbios Protokol unten
und die Funktion kann die Mac Adresse nicht ermitteln.

Grüße
Klaus

ich.online 27. Apr 2007 14:49

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Hi Klaus,

das ist dumm. Somit kann ich das für den Kopierschutz vergessen.

Wenn ich jetzt was auf einem Notebook installiere, wenn ein Kabel dran ist, wird die App die Adresse ja nicht mehr finden, wenn das Kabel weg ist.

Sonst vielleich jemand eine Idee, wie man einen Rechner über die Hardware eindeutig identifiziert?


Gruß

K.-D.

Gehstock 27. Apr 2007 15:11

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
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;

ich.online 27. Apr 2007 15:46

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Ist die Universal Unique ID denn immer vorhanden? Wenn ja, gibt es dafür irgendwo Quellcode?
Die CPU-ID ist ja fast nie da. Darum komme ich damit ja auch nicht weiter.

Ich habe das bisher immer über die HDID gemacht. Das reichte ansich aus. Wenn es auch leicht zu manipulieren ist. Ein normaler Endanwender kann das aber nicht. Nur jetzt wollte ich das unter Linux mit Wine laufen lassen. Da gibt es keine SerialID. Man kann ja wohl auch die harte ID der Platten auslesen. Hab leider keinen Schimmer wie.

Gruß

K.-D.

Gehstock 27. Apr 2007 16:04

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Bios Help

damit kannst du die Bios Universal Unique ID auslesen


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr.
Seite 3 von 4     123 4      

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