![]() |
Re: Anzeigen der IPAdresse UND Name der Verbindung
hi,
Zitat:
dann damit zu arbeiten. ich mein: 1. programm start -> dos: z.B. 'ipconfig /all' -> output einfangen (funktion gibt es schon) 2. den output aufbereiten (ethernetadapter = Name der Verbindung, Adapter = Adapter Name, IpAdressen) 3. die aufbereiteten daten in einer liste halten und je nach wunsch drauf zugreifen wie gesagt, nur ne idee win2000 : wird hier wirklich alles gleich geschrieben ? testen kann ich es nicht ... cya |
Re: Anzeigen der IPAdresse UND Name der Verbindung
Leider nicht. Also eigentlich sollte es gehen habe die Klassen auf beiden Systemen mit WMI-Demo überprüft. Kannst du mir diesen Ausruck mal genauer erklären?
Delphi-Quellcode:
Was ich mit einer anderen Lösung meinte ist, dass ich immer noch nicht verstehe warum ich nicht alleine mit meiner Funktion an die IP-adresse rankomme.
'Select * from '+ WMI_ClASS +' where caption like '+#39+#37+Adapter+#39,'WQL',0,nil);
Man müsste doch nur irgendwie IPAddress so bearbeiten dass ich den String mit der IP erhalte.
Delphi-Quellcode:
function getIPAdr(nt: TNetworktype): string;
var wmi : variant; wmiService : variant; nicstatus : variant; card : Olevariant; cnt : integer; Enum: IEnumVariant; P : IUnknown; F : Cardinal; cardCap : String; IPAdresse : String begin WMI:=CreateOleObject('WbemScripting.SWbemLocator'); wmiService := wmi.ConnectServer('.', 'root\CIMV2'); nicstatus := wmiService.InstancesOf('Win32_NetworkAdapterConfiguration'); p := nicstatus._NewEnum; p.QueryInterface(IEnumVariant, Enum); for cnt := 0 to nicstatus.Count - 1 do begin Enum.Next(1, card, F); cardCap := Copy(card.Caption, 12, MaxInt); if cardCap = FAdapter[nt] then begin IPAdresse := //Hier muss irgendwie über card.IPAdress und einer umwandlung in String die IPAdresse initialisiert werden result := IPAdresse break; end end; end; |
Re: Anzeigen der IPAdresse UND Name der Verbindung
Zitat:
SQL-Code:
% = eine Wildcard, ein Platzhalter da davor ja noch [000000xx] steht - % in Verbindung mit like
Select * Win32_NetworkAdapterConfiguration Where Caption like '%SIS Ethernet Adapter'
Caption istals string abgelegt, deshalb in der anfrage das #39, man kann auch mit QuotedStr arbeiten letzlich will also alle daten haben wo der name des adapters 'SIS Ethernet ...' beinhaltet cya |
Re: Anzeigen der IPAdresse UND Name der Verbindung
ich glaub ich habs jetzt so wie du es willst ...
Delphi-Quellcode:
prüf mal ob es hinkommt, aber ob es unter w2000 läuft weiß ich net
function GetIPAddress : string;
var wmi : variant; wmiService : variant; nicstatus : variant; card : Olevariant; cnt : integer; Enum: IEnumVariant; P : IUnknown; F : Cardinal; cardCap : String; strSettingID : String; i : integer ; begin WMI:=CreateOleObject('WbemScripting.SWbemLocator'); wmiService := wmi.ConnectServer('.', 'root\CIMV2'); nicstatus := wmiService.InstancesOf('Win32_NetworkAdapterConfiguration'); p := nicstatus._NewEnum; p.QueryInterface(IEnumVariant, Enum); for cnt := 0 to nicstatus.Count - 1 do begin Enum.Next(1, card, F); cardCap := Copy(card.Caption, 12, MaxInt); if cardCap = FAdapter then //Wenn Adapter in der jeweiligen Instanz gleich von mir definierter Adapter begin //result := getWMIValue('Win32_NetworkAdapterConfiguration','IPAddress','Marvell%'); for i:=0 to vararraydimcount(card.ipaddress) do result := result + card.ipaddress[i] + ' ;' ; break; end end; end; cya |
Re: Anzeigen der IPAdresse UND Name der Verbindung
Hi, perfekt! genau das isses :) Jetzt läuft soweit alles sowohl auf XP als auch auf 2k und ganz ohne zusätzliche Units. Danke!
Noch ne Frage: Die Leerstelle mit Semikolon hast du gemacht falls es mehrere IPs gibt oder? Anstatt
Delphi-Quellcode:
ginge doch auch
result := result + card.ipaddress[i] + ' ;' ;
Delphi-Quellcode:
oder?
result := result + card.ipaddress[i];
|
Re: Anzeigen der IPAdresse UND Name der Verbindung
Zitat:
Zitat:
aber das kannst du ja bequem über vararraydimcount eingrenzen cya |
Re: Anzeigen der IPAdresse UND Name der Verbindung
Hi soulies,
läuft jetzt wirklich rund. Nochmal vielen Dank für die Hilfe und Geduld! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12: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