Hallo,
ich habe hier über das Forum Code bekommen um die IPs meiner Netzwerkkarten auszulesen.
Delphi-Quellcode:
function 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;
Der Code ist klasse.
Die IPs werden hiermit alle korrekt ausgelesen wenn die entsprechende Netzwerkkarte aktiv ist.
(Wenn sie einen Link hat)
Ich suche nun eine Variante um die Subnetzmaske der
IP auszulesen
damit ich den erreichbaren Adressbereich der jeweiligen
IP berechnen kann.
Ich habe mich dazu mit den Beispielen aus dem Forum zu "GetAdaptersInfo" beschäftigt.
Die Beispiele liefern zwar alle gewünschten Informationen, aber der Code ist sehr mächtig.
Da ich gerne Code einsetze den ich auch verstehen kann,
hatte ich gehofft hier eine Version zu finden die etwas einfacher ist.
Gruß Holger.