Hallo zusammen
ich habe auf einer Form eine MaskedTextBox in die eine IPAdresse
eingegeben wird.
Um zu prüfen ob es eine gültige IP ist, verwende ich folgenden Code:
private bool IsIP(string IP)
{
IPAddress ip;
bool valid = false;
if (string.IsNullOrEmpty(IP))
{
valid = false;
}
else
{
valid = IPAddress.TryParse(IP, out ip);
}
return valid;
}
Wenn ich nun die IP: 192.168.070.078 eingebe, behauptet er das es keine korrekte IP Adresse ist. Was mache ich falsch?
Mit ein bisschen Probieren wärste da sicher drauf gekommen ...
192.168.070.078 ist keine gültige Ip, 192.168.70.78 hingegen schon.
Danke,
welche Möglichkeiten habe ich im Zusammenspiel zwischen einer TextMaskBox und IPAddress.TryParse(IP, out ip) um eine gültige IP abzufragen?
Ich wollte erst "0" Zeichen mit Replace ersetzen aber das führt natürlich auch zu falschen IP-Adressen (192.168.090.123->192.168.9.123).
Bleibt da nur Regex?
Es gibt immer mehrere Möglichkeiten für sowas.
Aber ich denke mit Regex kannst du es relativ schnell und elegant lösen, zumal es Ausdrücke zum validieren für IPs wie Sand am Meer geben sollte.
Gruß,
Tom
Validiert werden die IP Adressen ja durch die Methode
private bool IsIP(string IP).
Mir fehlt einfach eine Möglichkeit wie ich aus z.Bsp.:
090 eine 90 mache
Bei all dem (Regex & Co) bitte an IPv6 denken 😉
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
Hallo zusammen,
wenn es nur um die führenden Nullen geht, dann kann man auch "String.TrimStart('0')" verwenden.
Grüße
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Auf die Idee mit den casten bin ich dann auch gekommen, war halt schon ein bissl spät gestern Abend. 😃
Meine IP-Adressen werden nun nach der Eingabe in die MaskedTextBox
richtig behandelt. z.B. "192.###.001.10" wird zu "192.0.1.10"
Wenn ich die korrigierte/validiert IP Adresse der
MaskedTextBox zuweisen will ( Mask: 099,099,099,099 )
rückt er die Adresse nach links ein -> 192.011.0##.###
Weiß da jemand Rat?
Hmm, die Lösung wollte ich eigentlich umgehen.
Ich hätte es gern das es wie in der Netzwerkverwaltung in WindowsXp funktioniert,
da werden auch die unnötigen 0 entfernt.
Ja selbst ist der Programmierer.
Es gibt auch schon vorgefertigte Controls:
http://www.codeproject.com/KB/miscctrl/IpAddrCtrlLib.aspx
oder wenn es etwas kosten darf:
http://www.visualhint.com/index.php/fieldpackeditor/
Gruß,
Tom