One possibility (untested, so watch out for typos!):
$valid = FALSE;
if(preg_match('/^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/', $text, $matches))
{
$valid = TRUE;
for($ix = 1; $ix <= 4; $ix++)
{
if($matches[$ix] > 255)
{
$valid = FALSE;
break;
}
}
}