![]() |
IPs im lokalen Netzwerk einlesen
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:
Die klappt auch soweit, dass sie erkennt, dass ICH an meinem PC am Router angemeldet bin, die restlichen Rechner findet die aber nicht...
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; Liebe Grüße! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:04 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