![]() |
Re: MAC Adresse aller Netzwerk Karten ermitteln
Cool .
Danke. Habs grad getestet aber ich bekomme nur 1 MAC ( obwohl 3 Adapter drin sind ) raus oder 2 mal die gleiche an einem anderen PC. danke |
Re: MAC Adresse aller Netzwerk Karten ermitteln
Hi,
Also i habs nun hinbekommen das ich alle Mac Adressse herausekomme ,aber nur die wo auch connected sind? ist das normal? Die Procedure GetIPAdresses in den JCL kann i nicht aufrufen? mfg |
Re: MAC Adresse aller Netzwerk Karten ermitteln
Zitat:
|
Re: MAC Adresse aller Netzwerk Karten ermitteln
Oh Danke.
Habe nun die GetIPs genommen. ![]() Aber wie gesagt da bekomme ich auch nur die IP heraus von den Adaptern wo aktiv sind also Connect haben. Bei IP ist es ja gut aber bei MACs nicht,da könnte oder will ich alle MAcs wo im System sind. Danke |
Re: MAC Adresse aller Netzwerk Karten ermitteln
Hi,
hat den niemand eine Idee. Bin am verzweifeln hier. Wie gesagt die Funktionen erkennen nur die Karten wenn diese connected sind. danke |
Re: MAC Adresse aller Netzwerk Karten ermitteln
Delphi-Quellcode:
Was gibt Dir denn LanAdaptorCount zurück, nur die Interfaces die "online" sind oder alle.
unit MACAddress;
interface uses SysUtils; type TMACAddress = packed array[0..5] of Byte; ENetBiosError = class(Exception); function LanAdapterCount : Integer; function GetMacAddress(AdapterNum: Integer):TMACAddress; implementation uses NB30, Windows; resourcestring sNetBiosError = 'NetBIOS error %d'; type TAStat = record Adapt : TAdapterStatus; NameBuff : array[0..30] of TNameBuffer; end; function LanAdapterCount : Integer; var Ncb : TNCB; uRetCode : Char; lEnum : TLanaEnum; begin FillChar( NCB, SizeOf(NCB), 0 ); with NCB do begin ncb_command := Char( NCBENUM ); ncb_buffer := @lEnum; ncb_length := SizeOf(lEnum); end; uRetCode := Netbios( @Ncb ); if uRetCode <> #0 then raise Exception.CreateFmt( sNetBIOSError, [Ord(uRetCode)]); Result := Ord(lenum.length); end; function GetMacAddress(AdapterNum:Integer):TMACAddress; var Ncb : TNCB; uRetCode : Char; J : Integer; Adapter : TAStat; begin FillChar( NCB, SizeOf(NCB), 0 ); with NCB do begin ncb_command := Char(NCBRESET); ncb_lana_num := Char( AdapterNum ); end; uRetCode := Netbios( @Ncb ); if uRetCode <> #0 then raise Exception.CreateFmt(sNetBIOSError, [Ord(uRetCode)]); FillChar( NCB, SizeOf(NCB), 0 ); with NCB do begin ncb_command := Char(NCBASTAT); ncb_lana_num := Char( AdapterNum ); StrCopy( ncb_callname, '* ' ); ncb_buffer := @Adapter; ncb_length := sizeof(Adapter); end; uRetCode := Netbios( @Ncb ); if uRetCode <> #0 then raise Exception.CreateFmt(sNetBIOSError, [Ord(uRetCode)]); for J := 0 to 5 do Result[J] := Ord( Adapter.Adapt.Adapter_address[J]); end; Wenn es funktioniert, der Hinweis wurde schon mal weiter oben gepostet. Grüße Klaus |
Re: MAC Adresse aller Netzwerk Karten ermitteln
Hi,
Erstmal Dank. Habe ja schon das gesamt Forum bgesucht und alles getestet. Leider bekomme ich nur Lan Count 1 raus. Wenn ich meine Wlan aktiviere das er connected ist habe ich 2. Will aber immer alle auslesen ( Soll so ein Inventory Tool geben ) . Die Adapter sind alle Enabled nur nicht connectd. PS: Wie handle ich die TMAcAdress ? TMACAddress = packed array[0..5] of Byte; :wall: Danke. |
Re: MAC Adresse aller Netzwerk Karten ermitteln
die Mac-Adresse besteht aus 5 Byte.
Die Mac-Adresse die Du kennst, siehst Du als Hex dargestellt. Wenn Du die 5 Byte , byteweise nach Hex wandelst bekommst Du die Mac-Adresse wie Du sie gewohnt bist. Siehst Du denn die Mac-Adresse Deines WLAN Adpaters wenn er nicht connected ist mit ipconfig /all in der Console. Grüße Klaus |
Re: MAC Adresse aller Netzwerk Karten ermitteln
Danke.
IPconfig / all ist alles ok. Selbst mit der JclSysInfo-GetMacAddresses. bekomme ich nur die aktiven. |
Re: MAC Adresse aller Netzwerk Karten ermitteln
vielleicht hilft Dir ja iphlpapi.dll aus der Klemme
da gibt es die Funktion GetIfTable die alle Interfaces auflisten soll. Habe ich aber nicht selbst ausprobiert. Hier der Link zu Doku -> ![]() [edit1] Und hier ein Beipspiel wie man sie verwendet. ![]() ![]() In den threads findest Du auch die dll und auch eine iphlpapi.pas [/edit1] [edit2] ein Beispiel mit GetIfTable -> ![]() und noch eines -> ![]() [/edit2] Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20: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