How do I determine if IP is in IP Range?

I want to check to see if an IP is in  a supplied range of IP's. For example, is the IP in the range of - How could i do that with

Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

troyw1Connect With a Mentor Commented:
I tried to find the example code I have used before, but I can't find it and I no longer access to the customer code that I wrote. It was a function that converted IP addresses to their correct integer value.

Here is another interesting approach that should work also; comparing each octet range, one at a time.
'Set the values to test
RangeMin = ""
RangeMax = ""
TestIP = ""
'Split the above values into arrays
MinAry = Split(RangeMin, ".", -1, 1)
MaxAry = Split(RangeMax, ".", -1, 1)
IPAry = Split(TestIP, ".", -1, 1)
'Test the octets
error = ""
If IPAry(0) < MinAry(0) OR IPAry(0) > MaxAry(0) Then
error = "First octect out of range"
ElseIF IPAry(1) < MinAry(1) OR IPAry(1) > MaxAry(1) Then
error = "Second octect out of range"
ElseIF IPAry(2) < MinAry(2) OR IPAry(2) > MaxAry(2) Then
error = "Third octect out of range"
ElseIF IPAry(3) < MinAry(3) OR IPAry(3) > MaxAry(3) Then
error = "Fourth octect out of range"
End If
'Display the results
If error<>"" Then
MsgBox error, 16, "Processing Complete"
MsgBox "The IP is within range", 1, "Processing Complete"
End If

Open in new window

Stephen MandersonSoftware EngineerCommented:
Hi There here is one way of doing it..
                   ' Start                   'Finish               'Check For
IsBetween(" ", "", "") Returns False
IsBetween(" ", "", "") Returns True


    Public Function IsBetween(ByVal Start As String, ByVal Finish As String, ByVal CheckFor As String) As Boolean
        Dim StartRange As Long = CLng(Start.Replace(".", ""))
        Dim FinishRange As Long = CLng(Finish.Replace(".", ""))
        Dim CheckForIP As Long = CLng(CheckFor.Replace(".", ""))
        If StartRange >= CheckForIP Or CheckForIP <= FinishRange Then
            Return True
            Return False
        End If
    End Function

Open in new window

Stephen MandersonSoftware EngineerCommented:
Need to change the 'Or' in line 7 to 'And'
The posted code will not work properly because would be consider in-range when it is not. Try this code instead:
ronayersAuthor Commented:

that will just tell me the subnet the IPs are own based off a range. That will not solve my problem. Any other ideas?

All Courses

From novice to tech pro — start learning today.