Я использую эту функцию проверки IP, с которой я столкнулся во время просмотра, она работала хорошо, пока сегодня не столкнулся с проблемой.
По какой-то причине функция не может проверить этот IP как действительный:203.81.192.26
Я не слишком хорош с регулярными выражениями, поэтому был бы признателен за любую помощь в том, что может быть неправильно.
Если у вас есть другая функция, я был бы признателен, если бы вы могли опубликовать этодля меня.
Код функции ниже:
public static function validateIpAddress($ip_addr)
{
global $errors;
$preg = '#^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}' .
'(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$#';
if(preg_match($preg, $ip_addr))
{
//now all the intger values are separated
$parts = explode(".", $ip_addr);
//now we need to check each part can range from 0-255
foreach($parts as $ip_parts)
{
if(intval($ip_parts) > 255 || intval($ip_parts) < 0)
{
$errors[] = "ip address is not valid.";
return false;
}
return true;
}
return true;
} else {
$errors[] = "please double check the ip address.";
return false;
}
}