Um herauszufinden, ob ein String eine gültige
IP ist, habe ich mir folgende Funktion gebastelt:
Delphi-Quellcode:
function CheckIP(
ip:
string):boolean;
var ziffern:
array[0..3]
of integer;
index,position,fcode:integer;
begin
index:=0;
while (
ip<>'
')
and (
index<4)
do begin
position:=pos('
.',
ip);
// Teil bis zum ersten Punkt interessiert
if position=0
then position:=length(
ip)+1;
// Kein Punkt»letzte Ziffer»ganzen Reststring nehmen
val(copy(
ip,1,position-1),ziffern[
index],fcode);
// Teilstring in Zahl wandeln
delete(
ip,1,position);
// und dann aus dem String löschen
if fcode>0
then ziffern[
index]:=-1;
// Fehler beim Umwandeln»Ziffer ungültig machen
inc(
index);
end;
for position:=index+1
to 3
do ziffern[position]:=-1
// restliche Ziffern auffüllen, wenn zu wenig Zahlen im String
// gültigen Zahlerbereich prüfen,. Ergebnis ist Funktionsrückgabewert
checkIP:=(ziffern[0]
in [0..255])
and (ziffern[1]
in [0..255])
and
(ziffern[2]
in [0..255])
and (ziffern[3]
in [1..253])
end;