Einzelnen Beitrag anzeigen

Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#1

IPs im lokalen Netzwerk einlesen

  Alt 3. Dez 2009, 19:13
Hallo!
Ich habe ein Chatprogramm für das interne Netzwerk geschrieben. Jetzt möchte ich, dass beim Start, wenn eine bestimmte Datei existiert (also if file.exists...), dass in eine Listbox alle iPS/Computernamen geschrieben werden, die im lokalen Netzwerk aktiv sind. Wie kann ich das machen?
Außerdem soll bei jedem die eigene iP angezeigt werden.

Edit:
Ich hab das jetzt mit folgender Function gemacht:

Delphi-Quellcode:
function TForm1.GetLocalIPs(const Lines:TStrings):Boolean;
type
  PPInAddr= ^PInAddr;
var
  wsaData: TWSAData;
  HostInfo: PHostEnt;
  HostName: array[0..255] of Char;
  Addr: PPInAddr;
begin
  Result:=False;
  Lines.Clear;
  if WSAStartup($0102, wsaData)=0 then
  try
    if gethostname(HostName, SizeOf(HostName)) = 0 then begin
       HostInfo:= gethostbyname(HostName);
       if HostInfo<>nil then begin
          Addr:=Pointer(HostInfo^.h_addr_list);
          if (Addr<>nil) and (Addr^<>nil) then
             repeat
                    Lines.Add(StrPas(inet_ntoa(Addr^^)));
                    inc(Addr);
             until Addr^=nil;
       end;
    end;
    Result:=True;
  finally
    WSACleanup;
  end;
end;
Die klappt auch soweit, dass sie erkennt, dass ICH an meinem PC am Router angemeldet bin, die restlichen Rechner findet die aber nicht...



Liebe Grüße!
  Mit Zitat antworten Zitat