![]() |
korrekte IPs eingegeben?
nachdem ich nun mitbekommen hatte, das man der Eigenschaft BoundIP des Indy-TCPClients nur IPs eingeben kann, hatte ich ein Problem:
Ich habe ein Edit-Feld, dessen Inhalt aber auch (eigentlich logisch) Nicht-IP-Adressen haben kann. Daher habe ich diese FUnktion geschrieben, die eben prueft, ob es sich um eine korrekte IP handelt..
Delphi-Quellcode:
function isIP(IP: string): boolean;
var i, lastdot, amount, part: integer; begin // this function checks, whether a IP is a valid one IP := '.' + IP; lastdot := Length(IP) + 1; amount := 0; result := True; for i := (Length(IP) + 1) downto 1 do begin if IP[i] = '.' then begin try part := StrToInt(Copy(IP, i + 1, lastdot - i - 1)); lastdot := i; Inc(amount); // each part of the IP must be between 0 and 254 if (part < 0) or (part > 254) then result := False; except Result := False; end; end; end; //each IP has to contain 4 parts if amount <> 4 then result := False; end; Aufrufen z.B. durch:
Delphi-Quellcode:
if not IsIP('thor') then showmessage('Keine IP')
Zwei Anmerkungen noch: 1. der except Abschnitt kann eigentlich auch leer gelassen werden, da z.B. bei '192.abc.169.85' amount nur 3 waere, sieht aber im Code irgendwie doof aus.. :) 2. ich hoffe, das kann waer gebrauchen ;) Mat |
Ich kenne was besseres: Hier findest du einen VCL-Portscanner der ein IP-Adress-Eingabefeld hat.
![]() |
das ist natuerlich auch ne variante... wenn man aber in ein Edit-Feld wahlweise Hostnamen oder IPs schreiben kann, dann ist die Funktion nuetzlich.... fuer mich jedenfalls ... :)
Mat |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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