
























Zur Prüfung von IP-Adressen gibt es in der Klasse System.Net.IPAddress schon seit .NET Framework 2.0 die statische Methode TryParse(), die eine IP-Adresse aus einer Zeichenkette extrahiert.
Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.
Seit .NET Core 2.1 ist die Extraktion auch aus dem Typ ReadOnlySpan<char> möglich. Der Rückgabewert ist ein bool-Wert und die extrahierte IP-Adresse wird in Form einer Instanz der Klasse IPAddress als out-Parameter geliefert. Wenn man nur prüfen will, ob die IP-Adresse stimmt, schreibt man IPAddress.TryParse(eingabe, out _).
In .NET 10.0 bietet Microsoft nun in der statischen Methode IsValid() eine weitere Prüfungsvariante mit weniger internem Aufwand. Folgender Code vergleicht IsValid() mit TryParse():
/// <summary>
/// IsValid mit ReadOnlySpan<char> oder ReadOnlySpan<byte> als Alternative zu IPAddress.TryParse(span, out _)
/// </summary>
public void Run()
{
CUI.Demo("IPAddress.IsValid()");
string IP1 = "192.168.1.0"; // gültige IPv4-Adresse
CUI.H2(IP1);
// --- Alt
var valid1 = IPAddress.TryParse(IP1, out _);
Console.WriteLine("TryParse: " + valid1); // true
// --- Neu
System.Console.WriteLine("IsValid: " + System.Net.IPAddress.IsValid(IP1)); // true
string IP2 = "192.168.256.1"; // ungültige IPv4-Adresse
CUI.H2(IP2);
// --- Alt
var valid2 = IPAddress.TryParse(IP2, out _);
Console.WriteLine("TryParse: " + valid2); // false
// --- Neu
System.Console.WriteLine("IsValid: " + System.Net.IPAddress.IsValid(IP2)); // false
}
Der Code nutzt die alte und die neue Methode, um IP-Adressen auf Gültigkeit zu prüfen (Abb. 1).
Dafür kehrt Microsoft nun einfach eine bisher interne Methode TargetHostNameHelper.IsValidAddress() nach außen, wie sich dem Issue auf GitHub entnehmen lässt.
IsValid() ist performanter als TryParse() und benötigt keinen Speicher (Abb. 2).
(Bild: Microsoft)
(Bild: King / stock.adobe.com)
Das ist neu in .NET 11.0: Dr. Holger Schwichtenberg und weitere Experten präsentieren am 17. November 2026 auf der Online-Konferenz betterCode() .NET 11.0 die Änderungen für Entwicklerinnen und Entwickler. Bis zur Veröffentlichung des Programms sind vergünstigte Blind-Bird-Tickets verfügbar.
(rme)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。