![]() |
Anzeigen der IPAdresse UND Name der Verbindung
Hallo, mir geht es darum in einem Windows 2000 System für sämtliche Netwerkadapter die IP UND den Namen der Verbindung anzeigen zu lassen. Eine Funktion um die IP Adresse zeigen zu lassen habe ich hier im Forum schon gefunden und erfolgreich implemetiert. Jetzt gilt es noch zusätzlich zur IP-adresse den Adapternamen oder auch Adaptertyp anzeigen zu lassen.
Der Code für das Anzeigen der IP von MathiasSimmack hier im Forum
Delphi-Quellcode:
uses
WinSock; function GetLocalIPs: string; type PPInAddr = ^PInAddr; var wsadata : TWSAData; hostinfo : PHostEnt; addr : PPInAddr; begin Result := ''; if(WSAStartUp(MAKEWORD(1,1),wsadata) = 0) then try hostinfo := gethostbyname(nil); if(hostinfo <> nil) then begin addr := pointer(hostinfo^.h_addr_list); while(addr^ <> nil) do begin Result := Result + inet_ntoa(addr^^) + ^M^J; inc(addr); end; end; finally WSACleanUp; end; end; ![]() Edit: Am besten wäre natürlich eine Methode wo man den jeweiligen LAN-Adapternamen eingeben kann und dann die jeweilige IP als Rückgabe bekommt. |
Re: Anzeigen der IPAdresse UND Name der Verbindung
Was meinst Du mit Adapternamen ?
|
Re: Anzeigen der IPAdresse UND Name der Verbindung
Zitat:
|
Re: Anzeigen der IPAdresse UND Name der Verbindung
In hostinfo^.h_name steht der Rechnername (inkl. Domainname).
Die Infos zum Adapter wirst du wohl nur über die IP Helper API bekommen. Also GetAdaptersAddresses() bzw. GetAdaptersInfo(). |
Re: Anzeigen der IPAdresse UND Name der Verbindung
Einen schönen Abend!
Sorry, habe mich wohl nicht deutlich genug ausgedrückt. Ich meinte "nur" den Namen der Netzwerkverbindung und nicht unbedingt die genaue Bezeichnung der LAN- oder WLANkarte also einfach nur z.B. LAN-1 und LAN-2. Als Hintergrund möchte ich noch erwähnen, dass ich meinen beiden Netzwerkadaptern via NETSH jeweils eine bestimmte IP zuteile. Das ganze funktioniert erstaunlich einfach. Doch ob jetzt die Zuteilung der IP auch wirklich erfolgreich war ist ja eigentlich ungewiss. Ich möchte also "einfach" nur überprüfen ob jeder LANverbindung (z.B. LAN-1/LAN-2) die richtige IP übergeben wurde. Ein Hauptproblem ist es das Auslesen der IP mit dem Netzwerkverbindungsnamen zu verbinden. Jede einzelne Funktion gibt es ja unter anderem schon hier im Forum. Ich suche allerdings eine Kombination aus beiden. |
Re: Anzeigen der IPAdresse UND Name der Verbindung
Hi,
darf es auch WMI sein? Wenn JA, dann heißt die Klasse win32_NetworkAdapter und in Verbindung mit win32_NetworkAdapterConfiguration bekommst du alles was gebraucht wird. Gruß PS Zu WMI gibt es in der DP genug Beispiele |
Re: Anzeigen der IPAdresse UND Name der Verbindung
Also WMI ist natürlich auch recht, nur dachte ich, dass es da bei Win2000 Probleme gibt weil ja so einiges erst mit WinXP dazugekommen ist. Habe allerdings auch keine wirklich treffenden Beispiele bei DP gefunden. Bei "win32_NetworkAdapterConfiguration" kommt z.B kein einziger Treffer obwohl du das Wort ja in deiner Antwort geschrieben hast. Ist wohl ein zu langes Wort.
|
Re: Anzeigen der IPAdresse UND Name der Verbindung
Zitat:
![]() ![]() |
Re: Anzeigen der IPAdresse UND Name der Verbindung
Den Adapternamen habe ich ja schon aber wie schaffe ich es zusätzlich die Ip als String zurück zu erhalten?
Wenn ich z.B. weiß dass "Intel Ethernet 100 Integrated Controller" mein Adapter zu LAN-Verbindung1 ist, soll er mir ausgeben welche IP dieser Adapter hat. Edit: In der WMI-Demo habe ich jetzt gefunden was ich brauche. In "Win32_NetworkAdapterConfiguration" gibt es "IPAdress" und "Description". Habe allerdings Probleme da ran zu kommen. Das Demo ruft ja sämtliche Klassen auf ich bräcuhte nur diese eine... |
Re: Anzeigen der IPAdresse UND Name der Verbindung
Liste der Anhänge anzeigen (Anzahl: 1)
Also ich hab mich jetzt mal ein wenig schlau gemacht und eine Methode gefunden über WMI die Adapterbezeichnug und auch die IP Adresse auszulesen. Allerdings habe ich noch ein Problem mit der Augabe der IPs. Wenn ich in meinem Testprogramm auf IP ausgeben klicke kommt die Fehlermeldung:
Zitat:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, WbemScripting_TLB, ActiveX, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; var l_Values: TStringList; implementation {$R *.dfm} function getWMIValue(WMI_CLASS:string;WMI_VALUE:string): TStringList; var l_WMILocator: ISWbemLocator; l_WMIServices: ISWbemServices; l_WMIObjectDefinition: ISWbemObject; l_WMIObjectSet: SWbemObjectSet; l_WMIObjectInstances: IEnumVariant; l_WMIObject: ISWbemObject; l_WMIPropertySet: ISWbemPropertySet; l_WMIProperty: ISWbemProperty; l_TempObj: OleVariant; l_ObjValue: Cardinal; begin result := TStringList.Create; l_WMILocator := CoSWbemLocator.Create; l_WMIServices := L_WMILocator.ConnectServer('.', 'root\CIMV2', '', '', '', '', 0, nil); l_WMIObjectDefinition := l_WMIServices.Get(WMI_CLASS, wbemFlagUseAmendedQualifiers, nil); l_WMIObjectSet := l_WMIObjectDefinition.Instances_(0, nil); l_WMIObjectInstances := (l_WMIObjectSet._NewEnum) as IEnumVariant; while (l_WMIObjectInstances.Next(1, l_TempObj, l_ObjValue) = S_OK) do begin l_WMIObject:= IUnknown(l_TempObj) as SWBemObject; l_WMIPropertySet := l_WMIObject.Properties_; l_WMIProperty := l_WMIPropertySet.Item(WMI_VALUE, 0); if not VarIsNull(l_WMIProperty.Get_Value) then result.Add(l_WMIProperty.Get_Value) else result.Add('<unbekannt>'); end; end; procedure TForm1.Button1Click(Sender: TObject); var x:integer; begin l_Values := getWMIValue('Win32_NetworkAdapterConfiguration','IPAddress'); for x:=0 to l_Values.Count-1 do begin ShowMessage(l_Values.Strings[x]); end; end; procedure TForm1.Button2Click(Sender: TObject); var x:integer; begin l_Values := getWMIValue('Win32_NetworkAdapter','Name'); for x:=0 to l_Values.Count-1 do begin ShowMessage(l_Values.Strings[x]); end; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 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