How do I determine if IP is in IP Range?

Posted on 2008-10-07
Last Modified: 2012-06-27
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

Question by:ronayers
  • 2
  • 2
LVL 19

Expert Comment

by:Stephen Manderson
ID: 22662017
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

LVL 19

Expert Comment

by:Stephen Manderson
ID: 22662031
Need to change the 'Or' in line 7 to 'And'

Expert Comment

ID: 22670384
The posted code will not work properly because would be consider in-range when it is not. Try this code instead:

Author Comment

ID: 22680723

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


Accepted Solution

troyw1 earned 500 total points
ID: 22681855
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


Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

896 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now