vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Variablen/Strings · String-Operationen   |   VB-Versionen: VB605.08.08
Feststellen, ob ein String eine gängige IP-Adresse ist

Mit dieser Funktion lässt sich prüfen, ob es sich bei dem übergebenen String um eine gültige IP-Adresse handelt.

Autor:   RobertBewertung:     [ Jetzt bewerten ]Views:  10.903 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Mit dieser Funktion lässt sich prüfen, ob es sich bei dem übergebenen String um eine gültige IP-Adresse handelt.

Dazu muss man wissen, welche Konventionen für IP-Adressen gelten:

  • Eine IP-Adresse enthält 4 jeweils durch einen Punkt getrennte Zahlenblöcke. Es gibt also 3 Punkte.
  • Jeder dieser Zahlenblöcke ist (selbstverständlich) numerisch.
  • Der erste Zahlenblock muss im Bereich 10-255 liegen, die weiteren 3 Blöcke im Bereich 0 bis 255.

Das Ganze verpacken wir jetzt noch in eine schöne kuschelige Funktion:

' Prüft, ob es sich bei dem übergebenen String um
' eine IP-Adresse handeln kann
Private Function isValidIP(ByVal IP As String) As Boolean
  Dim arr() As String
  Dim bValid As Boolean
  Dim value As Long
  Dim i As Long
 
  ' Falls ein Fehler auftritt
  On Local Error GoTo ErrHandler
 
  ' Zahlenblöcke extrahieren
  bValid = False
  arr = Split(IP, ".")
 
  ' Wenn es nicht 4 Zahlenblöcke sind, dann kann es keine IP sein
  If UBound(arr) = 3 Then
    ' jetzt jeden Zahlenblock einzeln untersuchen:
    bValid = True
    For i = 0 To UBound(arr)
      ' besteht er nur aus Zahlen?
      If IsNumeric(arr(i)) = False Then
        bValid = False: Exit For
      End If
 
      value = Val(arr(i))
 
      ' 1. Oktett muss im Bereich 10 und 255 liegen!
      If i = 0 Then
        If value < 10 Or value > 255 Then
          bValid = False: Exit For
        End If
      Else
        ' alle anderen Oktetts müssen zwischen 0 und 255 liegen!
        If value < 0 Or value > 255 Then
          bValid = False: Exit For
        End If
      End If
    Next i
  End If
  On Error GoTo 0
 
  ' Ergebnis zurückgeben
  isValidIP = bValid
  Exit Function
 
ErrHandler:
  isValidIP = False
End Function

Dieser Tipp wurde bereits 10.903 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (8 Beiträge)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel