Otra forma:
Código:
function IsValidIP(S: String): Boolean;
var
Strings: TStringList;
begin
Result := false;
Strings := TStringList.Create;
Strings.Delimiter := '.';
Strings.DelimitedText := S;
if Strings.Count <> 4 then exit;
repeat
Result := (StrToIntDef(Strings[0], -1) in [0..255]);
Strings.Delete(0);
until (Strings.Count = 0) or not Result;
Strings.Free;
end;
// Saludos