Ich versuche sicherzustellen, dass mein Code String -IP -Werte in anderen Formaten als IPv4 und IPv6 nicht akzeptiert. Ich habe so etwas: < /p>
Code: Select all
if (!IPAddress.TryParse(ipAddress, out var parsedIpAddress))
{
throw new ArgumentException();
}
if (parsedIpAddress.AddressFamily != AddressFamily.InterNetwork
&& parsedIpAddress.AddressFamily != AddressFamily.InterNetworkV6)
{
throw new ArgumentException("Only IPv4 and IPv6 formats are supported.");
}
Dies ist in Ordnung, aber um dies zu testen, versuche ich, ein iPaddress -Objekt zu generieren, wobei Adressfamilie etwas anderes als Internetwork oder Internetworkv6 ist. Ich habe mir das System.net.Sockets.addressFamily enum angesehen und versucht, ein Beispiel für eine Adresse zu suchen, die einige der anderen Werte dort entspricht. Egal, welche Zeichenfolge ich iPaddress.tryParse () gebe, entweder false oder analysiert es in ein Internetwork oder Internetworkv6 . Ich habe mir die Definition von .RyParse () angesehen und es wird iPaddressParser.Parse () aufgerufen, was nur IPv4 und IPv6 zu unterstützen scheint. Es scheint, als wäre es praktisch unmöglich, andere Werte als diese beiden zu analysieren - ist mein Verständnis richtig? Gibt es einen Punkt bei der Überprüfung der Adressfamilie überhaupt?