Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

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 22. Mär 2006 12:20


MAC Adresse aller Netzwerk Karten ermitteln
 
Hi,
Ich weiß zwar das dasThema MAC Adressen schon oft in der DP erwähnt worden ist,aber ich habe noch niergends etwas passendes gefunden wo mir die Mac Adressen genau ausliest wenn mehrere Karten eingebaut sind.

Habe dann keinen Bezug zum Name oder zur IP.
Hat da jemand was n Peto?

Danke.

mkinzler 22. Mär 2006 12:23

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
In der movisuellen JCL ( Jedi Component Library) gibt es eine Unit JclSysInfo. Darin ist eine Funktion
Delphi-Quellcode:
 GetMacAddresses
.

Klaus01 22. Mär 2006 12:29

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
hier ist es auch beschrieben
-> http://www.infojet.cz/program/delphi/tips/tip0023.html

Grüße
Klaus

Christian Seehase 22. Mär 2006 20:49

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Moin Rene,

Du kannst auch mal nach Hier im Forum suchenGetAdaptersInfo bzw. Hier im Forum suchenGetPerAdapterInfo suchen.

SirThornberry 22. Mär 2006 21:57

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
ich benutze dafür folgende funktionen:
Delphi-Quellcode:
uses
  [...], nb30, [...]

function GetAdapterInfo(Lana: Char): String;
var
  Adapter: TAdapterStatus;
  NCB: TNCB;
begin
  FillChar(NCB, SizeOf(NCB), 0);
  NCB.ncb_command := Char(NCBRESET);
  NCB.ncb_lana_num := Lana;
  if Netbios(@NCB) <> Char(NRC_GOODRET) then
  begin
    Result := 'mac not found';
    Exit;
  end;

  FillChar(NCB, SizeOf(NCB), 0);
  NCB.ncb_command := Char(NCBASTAT);
  NCB.ncb_lana_num := Lana;
  NCB.ncb_callname := '*';

  FillChar(Adapter, SizeOf(Adapter), 0);
  NCB.ncb_buffer := @Adapter;
  NCB.ncb_length := SizeOf(Adapter);
  if Netbios(@NCB) <> Char(NRC_GOODRET) then
  begin
    Result := 'mac not found';
    Exit;
  end;
  Result :=
    IntToHex(Byte(Adapter.adapter_address[0]), 2) + '-' + 
    IntToHex(Byte(Adapter.adapter_address[1]), 2) + '-' + 
    IntToHex(Byte(Adapter.adapter_address[2]), 2) + '-' + 
    IntToHex(Byte(Adapter.adapter_address[3]), 2) + '-' + 
    IntToHex(Byte(Adapter.adapter_address[4]), 2) + '-' + 
    IntToHex(Byte(Adapter.adapter_address[5]), 2);
end;

{==============================================================================}

function GetMacAddressCount: Byte;
var AdapterList: ^TLanaEnum;
    NCB: TNCB;
begin
  new(AdapterList);
  FillChar(NCB, SizeOf(NCB), 0);
  NCB.ncb_command := Char(NCBENUM);
  NCB.ncb_buffer := PChar(AdapterList);
  NCB.ncb_length := SizeOf(AdapterList^);
  Netbios(@NCB);
  Result := Byte(AdapterList.length);
  dispose(AdapterList);
end;

function GetMACAddress(ANewworkcardIndex: Byte = 0): string;
var AdapterList: TLanaEnum;
  NCB: TNCB;
begin
  FillChar(NCB, SizeOf(NCB), 0);
  AdapterList.length := char(0);
  NCB.ncb_command := Char(NCBENUM);
  NCB.ncb_buffer := @AdapterList;
  NCB.ncb_length := SizeOf(AdapterList);
  Netbios(@NCB);
  if Byte(AdapterList.length) > ANewworkcardIndex then
    Result := GetAdapterInfo(AdapterList.lana[ANewworkcardIndex])
  else
    Result := 'mac not found';
end;

runger 23. Mär 2006 05:22

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Hallo,

was ist das?
Zitat:

movisuellen JCL
Hallo Thornberry,
es wäre nett wenn du die uses .... Zeile mitkopieren könntest.

Danke Rainer

mkinzler 23. Mär 2006 05:43

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Zitat:

was ist das?
Zitat:
movisuellen JCL
DIE Jcl besteht zum Unterschied zur JVCL nnicht aus installierbaren Komponenten, sondern nur aus Hilfsklassen oder -Proceduren/-Funktionen.

SirThornberry 23. Mär 2006 06:03

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
@runger: Hab die Uses ergänzt.

renekr 23. Mär 2006 08:35

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Hi,
vielen Dank.
Aber ich glaube ich stelle mich grad ein bisschen dumm an.
Delphi-Quellcode:
function GetMacAddresses(const Machine: string; const Addresses: TStrings): Integer;
Wie rufe ich die auf.
Ich will im Prinzip für jeden Lan Adapter die MAc Adresse und ev sogar die IP dazu. ( ev. noch die Bezeichnung )


Danke.

mkinzler 23. Mär 2006 08:39

Re: MAC Adresse aller Netzwerk Karten ermitteln
 
Delphi-Quellcode:
var
    macs: TString;
    IPAdr: String;
...
  macs := TStringList.Create;
  GetMacAddresses( GetLocalComputerName, macs);  
  IPAdr := GetIPAddress( GetLocalComputerName);


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz