PHP PHP IP Address Validation Function

Validate an IP address using a PHP function. Easily check if an IP address is valid, including options to specify the IP protocol and exclude private and reserved ranges.

function isIP($ip, $type = FILTER_FLAG_IPV4, $exludePrivAndRes = false)
{
    if (empty($ip)) {
        return false;
    }

    $type = strtolower($type);

    switch ($type) {
        case 'ipv4':
            $type = FILTER_FLAG_IPV4;
            break;

        case 'ipv6':
            $type = FILTER_FLAG_IPV6;
            break;

        default:
            $type = FILTER_FLAG_IPV4;
            break;
    }

    is_bool($exludePrivAndRes) || $exludePrivAndRes = false;

    if ($exludePrivAndRes) {
        $type |= FILTER_FLAG_NO_PRIV_RANGE;
        $type |= FILTER_FLAG_NO_RES_RANGE;
    }

    return (bool) filter_var($ip, FILTER_VALIDATE_IP, $type);
}