256 || !\preg_match('/^([a-zA-Z\d.-]*|\[[a-fA-F\d:]+\])$/', $value) ) { return false; } elseif (\strlen($value) > 2 && \substr($value, 0, 1) === '[' && \substr($value, -1, 1) === ']') { return \filter_var(\substr($value, 1, -1), \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV6) !== false; } elseif (\is_numeric(\str_replace('.', '', $value))) { return \filter_var($value, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV4) !== false; } elseif (\filter_var('http://' . $value, \FILTER_VALIDATE_URL) !== false) { return true; } return false; } }