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
Seite 2 von 4     12 34      
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#11

Re: MAC Adresse aller Netzwerk Karten ermitteln

  Alt 23. Mär 2006, 09:50
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
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: MAC Adresse aller Netzwerk Karten ermitteln

  Alt 29. Mär 2006, 11:46
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: MAC Adresse aller Netzwerk Karten ermitteln

  Alt 29. Mär 2006, 11:48
Zitat:
Die Procedure GetIPAdresses in den JCL kann i nicht aufrufen?
Die gibts auch nur unter Linux.
Markus Kinzler
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#14

Re: MAC Adresse aller Netzwerk Karten ermitteln

  Alt 29. Mär 2006, 15:46
Oh Danke.

Habe nun die GetIPs genommen.
Eigene (Internet)IP rausfinden

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
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: MAC Adresse aller Netzwerk Karten ermitteln

  Alt 3. Apr 2006, 09:50
Hi,
hat den niemand eine Idee.
Bin am verzweifeln hier.

Wie gesagt die Funktionen erkennen nur die Karten wenn diese connected sind.

danke
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: MAC Adresse aller Netzwerk Karten ermitteln

  Alt 3. Apr 2006, 10:28
Delphi-Quellcode:
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;
Was gibt Dir denn LanAdaptorCount zurück, nur die Interfaces die "online" sind oder alle.

Wenn es funktioniert, der Hinweis wurde schon mal weiter oben gepostet.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#17

Re: MAC Adresse aller Netzwerk Karten ermitteln

  Alt 3. Apr 2006, 10:39
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;


Danke.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#18

Re: MAC Adresse aller Netzwerk Karten ermitteln

  Alt 3. Apr 2006, 11:03
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
Klaus
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#19

Re: MAC Adresse aller Netzwerk Karten ermitteln

  Alt 3. Apr 2006, 11:06
Danke.

IPconfig / all ist alles ok.

Selbst mit der JclSysInfo-GetMacAddresses.
bekomme ich nur die aktiven.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#20

Re: MAC Adresse aller Netzwerk Karten ermitteln

  Alt 3. Apr 2006, 11:38
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 -> http://windowssdk.msdn.microsoft.com..._reference.asp

[edit1]
Und hier ein Beipspiel wie man sie verwendet.
http://www.delphipraxis.net/internal...ct.php?t=42992
http://www.delphipraxis.net/internal...light=iphlpapi
In den threads findest Du auch die dll und auch eine iphlpapi.pas

[/edit1]

[edit2]
ein Beispiel mit GetIfTable -> http://www.delphipraxis.net/internal...t.php?p=205634
und noch eines -> http://www.delphi-forum.de/viewtopic.php?t=1536
[/edit2]

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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:16 Uhr.
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