Einzelnen Beitrag anzeigen

Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#1

Subnetzmaske zu einer lokalen IP auslesen

  Alt 8. Dez 2006, 02:23
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.
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat