http://php.net/manual/es/function.explode.php
$ip_array=explode('.', $ip_string);
De regalo como la tengo ya hecha:
spoiler/* Comprueba si una cadena es una dirección IP válida. ($modo -> Default: pública (valen *) ó privada, 1: privada (sin *), 2: pública (sin *)) */
function is_ip($ip, $modo=0)
{
$ip=trim($ip);
if(!empty($ip))
{
switch($modo)
{
case 1:
$buena=preg_match('/(?:^127\.0\.0\.1$)|(?:^192\.168\.)|(?:^172\.(?:(?:1[6-9])|(?:2[0-9])|(?:3[0-1]))\.)|(?:^10\.)/', $ip);
break;
case 2:
$buena=(preg_match('/^(?:(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])$/', $ip) && !preg_match('/(?:^127\.0\.0\.1$)|(?:^192\.168\.)|(?:^172\.(?:(?:1[6-9])|(?:2[0-9])|(?:3[0-1]))\.)|(?:^10\.)/', $ip));
break;
default:
$buena=preg_match('/^(?:(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9*])\.){3}(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9*])$/', $ip);
}
}
return $buena?TRUE:FALSE;
}
if(is_ip($ip, 2))
echo 'Esta IP es válida y además es pública';
Salu2