Hallo zusammen,
ich habe aus einem anderen Beitrag mal eine Codesequenz "geklaut" und diese in meinem Programm eingebaut und so angepaßt das alles in meiner Listbox auftaucht. Jedoch wird bei mir 4x ein Gateway angezeigt aber nur einmal mit einer
IP. Jetzt bin ich ehrlich gesagt noch nicht so "Bibelfest" das ich eigenmächtig den Code so anpassen kann, das nur der Eintrag mit der entsprechenden
IP angezeigt wird und die leeren eben nicht. Hier mal meine/gefundene Funktion:
Delphi-Quellcode:
procedure GetGateway (const AItems:TStrings);
var
dwResult : DWORD;
dwLen : DWORD;
pAdapterWork : PIP_ADAPTER_INFO;
pAdapterList : PIP_ADAPTER_INFO;
iasWork : IP_ADDR_STRING;
begin
pAdapterList := nil;
dwLen := 0;
dwResult := GetAdaptersInfo(pAdapterList,@dwLen);
if dwResult = ERROR_BUFFER_OVERFLOW then
begin
pAdapterList := AllocMem(dwLen);
try
dwResult := GetAdaptersInfo(pAdapterList,@dwLen);
if dwResult = ERROR_SUCCESS then
begin
pAdapterWork := pAdapterList;
//cobGateway.Clear;
repeat
iasWork := pAdapterWork.GatewayList;
while iasWork.Next <> nil do
begin
AItems.Add('Gateway: '+trim(iasWork.IpAddress.acString));
iasWork := iasWork.Next^;
end;
AItems.Add('Gateway: '+trim(iasWork.IpAddress.acString));
pAdapterWork := pAdapterWork.Next;
until pAdapterWork = nil;
end;
finally
FreeMem(pAdapterList,dwLen);
end;
end;
end;
Im Anhang mal das aktuelle Erscheinungsbild des Programmes. Ich hoffe ihr versteht was ich meine.
Danke
Ati