09.01.2025, 14:13 (Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2025, 14:15 von knobbi38.)
Hallo,
hier ein stark vereinfachter Code zum Prüfen, ohne Berücksichtigung von Sonderfällen/Formatfehlern auf Basis von einem einfachen Stringvergleich (aircode):
Code:
Private Sub Test() Debug.Print IsIPCDIR("192.168.0.111", "192.168.10.0/23") End Sub
Public Function IsIPCDIR(ByVal IP As String, CDIR As String) as Boolean Dim strIP As String Dim strCDIR As String Dim intMaskBits As Integer Dim i As Long
strIP = IPtoBin(IP) ' IP -> Bin
i = InStr(1, CDIR, "/") intMaskBits = CInt(Mid$(CDIR, i + 1)) ' Bitlänge der Maske strCDIR = IPtoBin(Left$(CDIR, i - 1)) ' CDIR -> Bin
' Stringvergleich der höchstwertigen Bits ' entsprechend der Bitlänge der Maske IsIPCDIR = CBool(Left$(strIP, intMaskBits) = Left$(strCDIR, intMaskBits)) End Function
Private Function IPtoBin(ByVal IP As String) As String Dim i As Long Dim astr() As String
astr = Split(IP, ".") For i = 0 To 3 IPtoBin = IPtoBin & WorksheetFunction.Dec2Bin(CInt(astr(i)), 8) Next End Function
IP Host Adressen und IP Netze können eindeutig nur einem VRF (BBB oder BIBI) zugeordnet werden (Ausnahme sind die FUSION, aber die können ignoriert werden...) Daher geht folgendes nicht:
Wieso bittest du um Hilfe und beantwortest aber die Fragen der Helfer nicht einmal? Zu viel Arbeit? Nochmal die Frage? Wie soll das funktionieren, wenn immer mehrere Ergebnisse rauskommen (siehe Datei-Anhang) ?
Bitte entschuldige, dachte das eine Post bezieht sich auf die Antwort von snb, habe nicht verstanden das es sich um die von mir bereitgestellte Datei handelt, sorry, darum habe ich nicht darauf geantwortet. Ich bin sehr froh um die Hilfe die hier gegeben wird!