Frage

In ein paar Felder in meinem Windows Forms-Anwendung, bitte ich einen Benutzer entweder eine IP-Adresse oder einen Hostnamen zu liefern. Gibt es einen guten regulären Ausdruck (regex), um den eingegebenen Wert zu bestätigen? Oder gibt es eine andere Methode, die ich beachten sollte? Bitte beachten Sie, ich würde es vorziehen, dass der Benutzer ein betritt FQDN oder eine IP-Adresse.

War es hilfreich?

Lösung

Im Interesse der Zukunftssicherheit Ihre Anwendung, würde ich vorschlagen, nur IPAddress.TryParse(), um festzustellen, ob die Eingabe eine IP-Adresse.

Überprüfen auf einen ‚gültig‘ Hostnamen ist schwieriger, auch weil Sie nicht angeben, ob der Hostname existiert hat oder nicht. Ist dies der Fall, würde der einfachste Weg, um die Verwendung Dns.GetHostEntry() sein, um zu sehen, ob das ein Ergebnis liefert. Sie können nicht viel genauere Validierung erhalten auf der Grundlage der Beschreibung erhalten haben.

Andere Tipps

Warum würden Sie müssen die IP-Adresse und den Hostnamen für eine Windows Forms-Anwendung fragen? Wenn dies die lokalen PC-Details sind, könnten Sie diese Suche von: -

1) die Hostnamen zu erhalten, können Sie auf rufen Dns.GetHostName () (siehe MSDN Referenz )

2) die IP-Adresse zu erhalten, können Sie die IP-Adresse über Dns.GetHostByName () (siehe MSDN Referenz )

IPAddress.TryParse , wenn es versucht, nicht zu Dns.GetHostByName

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top