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; } }