Czy dany numer IP jest poprawny (w formacie XXX.XXX.XXX.XXX)
AndRew
Funkcja sprawdzająca czy IP jest poprawnie wpisany (tzn : 4 bloki liczb w zakresie 0 - 255 rozdzielone kropkami)
function IsValidIP(const IP: String) : boolean;
var I, J : Byte;
ValidPart : array [0..3] of Boolean;
Part: String;
begin
I := 0;
for J := 0 to 3 do
begin
Part := '';
repeat
Inc(I);
Part := Part + IP[I];
until (IP[i] = '.') or (i = length(IP));
if Part[Length(Part)] = '.' then Part := Copy(Part, 0, Length(Part) - 1);
ValidPart[J] := (StrToInt(Part) <= 255) and(StrToInt(Part) >= 0);
end;
Result := ValidPart[0] and ValidPart[1] and ValidPart[2] and ValidPart[3];
end;
Que? Szybciej? [rotfl] :D
Ja tam wolę użyć zawsze RegExp :]
http://www.regular-expressions.info/regexbuddy/ipaccurate.html
Szybciej, sprawniej i pewniej ;)
albo dziecymalnie, co czaaasami sie zdarza... :)
moje IP 212.33.82.196 decymalnie - 3558953668.
BTW. w pakiecie INDY jest komponent NetCalc czy jakos tak
oblicza IP, maski podsieci, klasy, fajna zabawka
Hmm. A jeżeli jest zapisane w postaci liczby szesnastkowej?