[vb.net] Prüfen von IP-Adressen / Validate IP-Address
Gepostet am: May 10, 2011 4:16:57 PM
Hin und wieder wird benötigt, eine IP-Adresse auf ihre Richtigkeit zur prüfen. Dazu gibt es 2 grundsätzliche Konzepte: Einerseits das Zerlegen der IP in einzelne Zahlen und andererseits die Überprüfung mittels regulären Ausdrücken.
ohne reguläre Ausdrücke
Public Function checkIP(ByVal sIP As String) As Boolean Dim bValid As Boolean = False If sIP.Length > 0 Then ' IP in Blöcke aufteilen Dim sNumber() As String = sIP.Split(".") ' wenn 4 Blöcke enthalten... If sNumber.Length = 4 Then bValid = True ' ... prüfen, ob Block numerisch For i = 0 To 3 If Not IsNumeric(sNumber(i)) OrElse sNumber(i).Length > 3 Then bValid = False : Exit For End If Dim Value As Integer = Integer.Parse(sNumber(i)) If i = 0 Then ' 1. Block muss im Bereich 10 bis 255 liegen If Value < 10 Or Value > 255 Then bValid = False : Exit For End If Else ' alle anderen Blöcke müssen zwischen 0 und 255 liegen If Value < 0 Or Value > 255 Then bValid = False : Exit For End If End If Next End If End If Return bValid End Function
mit regulären Ausdrücken
Public Function CheckIPRegExp(ByVal sIP As String) As Boolean Dim pattern As String = "\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b" Dim check As New Regex(pattern) Return check.IsMatch(sIP, 0)End Function