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!