Einzelnen Beitrag anzeigen

Helpliner

Registriert seit: 6. Aug 2003
Ort: Hamburg
84 Beiträge
 
Delphi 7 Personal
 
#1

Es werden nicht alle IP's angezeigt

  Alt 5. Sep 2003, 14:42
Hallo Leutz,

ich möchte über folgende Funktion alle lokalen IP's ermitteln:

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;
Ich rufe die Funktion im OnCreate Ereigniss auf und weise das Ergebniss einem Panel zu.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Panel1.Caption := GetLocalIPs;
end;
Allerdings wird nur eine IP Adresse im Panel eingetragen obwohl 2 NIC's vorhanden sind die auch beide eine IP haben (ipconfig /all zeigt diese auch an - siehe Anhang).

Wo ist mein Denkfehler ?
Miniaturansicht angehängter Grafiken
ipconfigall.jpg  
VORSICHT: blutiger Anfänger!

Ähnlichkeiten mit tatsächlich funktionierendem Code sind rein zufällig und definitiv unbeabsichtigt.
  Mit Zitat antworten Zitat