Background and motivation
Cheaper IPAddress.TryParse(span, out _) for when you don't need the result.
API Proposal
namespace System.Net;
public partial class IPAddress
{
public static IPAddress Parse(string ipString);
public static IPAddress Parse(ReadOnlySpan<char> ipSpan);
public static IPAddress Parse(ReadOnlySpan<byte> utf8Text);
public static bool TryParse(string? ipString, out IPAddress? address);
public static bool TryParse(ReadOnlySpan<char> ipSpan, out IPAddress? address);
public static bool TryParse(ReadOnlySpan<byte> utf8Text, out IPAddress? result);
+ public static bool IsValid(ReadOnlySpan<char> ipSpan);
+ public static bool IsValid(ReadOnlySpan<byte> utf8Text);
}
API Usage
-if (IPAddress.TryParse(text, out _))
+if (IPAddress.IsValid(text))
We have an internal helper TargetHostNameHelper.IsValidAddress that appears to be doing exactly what IPAddress.IsValid would be:
|
internal static unsafe bool IsValidAddress(string? hostname) |
Alternative Designs
- Allow specifying IPv4 or IPv6 only?
Risks
No response
Background and motivation
Cheaper
IPAddress.TryParse(span, out _)for when you don't need the result.API Proposal
namespace System.Net; public partial class IPAddress { public static IPAddress Parse(string ipString); public static IPAddress Parse(ReadOnlySpan<char> ipSpan); public static IPAddress Parse(ReadOnlySpan<byte> utf8Text); public static bool TryParse(string? ipString, out IPAddress? address); public static bool TryParse(ReadOnlySpan<char> ipSpan, out IPAddress? address); public static bool TryParse(ReadOnlySpan<byte> utf8Text, out IPAddress? result); + public static bool IsValid(ReadOnlySpan<char> ipSpan); + public static bool IsValid(ReadOnlySpan<byte> utf8Text); }API Usage
We have an internal helper
TargetHostNameHelper.IsValidAddressthat appears to be doing exactly whatIPAddress.IsValidwould be:runtime/src/libraries/Common/src/System/Net/Security/TargetHostNameHelper.cs
Line 43 in 94add2e
Alternative Designs
Risks
No response