![]() |
Subnetzmaske zu einer lokalen IP auslesen
Hallo,
ich habe hier über das Forum Code bekommen um die IPs meiner Netzwerkkarten auszulesen.
Delphi-Quellcode:
Der Code ist klasse.
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; 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. |
Re: Subnetzmaske zu einer lokalen IP auslesen
Du brauchst sie net auslesen. du kannst anhand der IP sehen welche subnetzmaske verwendet wird.
Wenn der erste "Zahl" der IP-Adresse im Bereich 0-127 liegt dann ist die subnetzmaske 255.0.0.0 im Bereich 128-191 ist sie 255.255.0.0 und im bereich 192-255 ist sie 255.255.255.0 |
Re: Subnetzmaske zu einer lokalen IP auslesen
nicht direkt iceman
das sind die stani subnetmasken für a b c netze mann kann die aber auch ändern ^^. |
Re: Subnetzmaske zu einer lokalen IP auslesen
[OT=Leicht]
Is des nich sogar so das an der Stelle von der Subnetmaske die Stelle scih irgendwie auf die Ip bezeiht . also ich weiß nich wie ich das schreiben soll ... Also halt das z.B.: die Null an letzter stelle dafür steht das diese Netzwerkkarte alle addressen dieses bereichs erkennen kann? und wenn man z.B. 0.0.0.0 machen würde dann hätte man den gesammten bereich? allso alle möglichkeiten? (diese überlgung würde sich deken wenn du mit ideser Info den Addressbereichbestimmen könntes oder?) Leuchtend eGRüße Stefan alias Light [/OT] |
Re: Subnetzmaske zu einer lokalen IP auslesen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 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