[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