![]() |
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. |
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
|
Re: MAC Adresse aller Netzwerk Karten ermitteln
|
Re: MAC Adresse aller Netzwerk Karten ermitteln
|
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; |
Re: MAC Adresse aller Netzwerk Karten ermitteln
Hallo,
was ist das? Zitat:
es wäre nett wenn du die uses .... Zeile mitkopieren könntest. Danke Rainer |
Re: MAC Adresse aller Netzwerk Karten ermitteln
Zitat:
|
Re: MAC Adresse aller Netzwerk Karten ermitteln
@runger: Hab die Uses ergänzt.
|
Re: MAC Adresse aller Netzwerk Karten ermitteln
Hi,
vielen Dank. Aber ich glaube ich stelle mich grad ein bisschen dumm an.
Delphi-Quellcode:
Wie rufe ich die auf.
function GetMacAddresses(const Machine: string; const Addresses: TStrings): Integer;
Ich will im Prinzip für jeden Lan Adapter die MAc Adresse und ev sogar die IP dazu. ( ev. noch die Bezeichnung ) Danke. |
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 08:03 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