IP Library Granted Patent US 12,615,233
Granted Patent B2
US 12,615,233 · App. 18/148,166 · Granted Apr 28, 2026

Storing and accessing overlapping internet protocol (IP) address ranges

Inventor: David Waters (Wesley Chapel, FL)
Assignee: BMC Software, Inc.
H04L63/0236H04L63/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,615,233
App. No.
18/148,166
Granted
Apr 28, 2026
Kind
B2
Abstract

The described systems and techniques provide improved storage for overlapping IP address ranges and improved access to a given IP address's membership in the stored overlapping IP address ranges, in constant, O(1) access time with respect to the number of IP ranges stored or number of overlaps. The systems and technique include receiving an IP address, generating a positional score for the IP address, querying a positional data set containing a plurality of positional values using the positional score to find a first matching positional value, and querying a tag storage set containing a plurality of tag identifiers (IDs) using the first matching positional value to find a tag identifier (ID) from the plurality of tag IDs matching the first matching positional value, where the tag ID contains one or more tags with each of the one or more tags identifying a range of IP addresses containing the IP address.

Claims (41)

1 . A computer-implemented method for querying an internet protocol (IP) address, the computer-implemented method comprising:

receiving an IP address;

generating a positional score for the IP address;

querying a positional data set containing a plurality of positional values using the positional score to find a first matching positional value;

querying a tag storage set containing a plurality of tag identifiers (IDs) using the first matching positional value to find a tag identifier (ID) from the plurality of tag IDs matching the first matching positional value, wherein the tag ID contains one or more tags with each of the one or more tags identifying a range of IP addresses containing the IP address;

receiving a new range of IP addresses;

converting the range of IP addresses into new positional values; and

adding the new positional values to the positional data set.

2 . The computer-implemented method as in claim 1 , wherein querying the positional data set includes performing a reverse range query using the positional score to find the first matching positional value.

3 . The computer-implemented method as in claim 1 , further comprising performing an action in response to the IP address contained in the one or more tags identifying the range of IP addresses.

4 . The computer-implemented method as in claim 3 , wherein the action includes blocking the IP address from accessing one or more components of a network.

5 . The computer-implemented method as in claim 1 , further comprising adding the new positional values to the tag storage set.

6 . The computer-implemented method as in claim 1 , further comprising adding the new positional values to an expired table, wherein the expired table includes a time that the new range of IP addresses expires.

7 . A computer program product for querying an internet protocol (IP) address, the computer program product being tangibly embodied on a non-transitory computer-readable medium and including executable code that, when executed, causes at least one computing device to:

receive an IP address;

generate a positional score for the IP address;

query a positional data set containing a plurality of positional values using the positional score to find a first matching positional value;

query a tag storage set containing a plurality of tag identifiers (IDs) using the first matching positional value to find a tag identifier (ID) from the plurality of tag IDs matching the first matching positional value, wherein the tag ID contains one or more tags with each of the one or more tags identifying a range of IP addresses containing the IP address;

receive a new range of IP addresses;

convert the range of IP addresses into new positional values; and

add the new positional values to the positional data set.

8 . The computer program product of claim 7 , wherein the executable code that, when executed, causes the at least one computing device to query the positional data set by performing a reverse range query using the positional score to find the first matching positional value.

9 . The computer program product of claim 7 , further comprising executable code that, when executed, causes the at least one computing device to perform an action in response to the IP address contained in the one or more tags identifying the range of IP addresses.

10 . The computer program product of claim 9 , wherein the action includes blocking the IP address from accessing one or more components of a network.

11 . The computer program product of claim 7 , further comprising executable code that, when executed, causes the at least one computing device to add the new positional values to the tag storage set.

12 . The computer program product of claim 7 , further comprising executable code that, when executed, causes the at least one computing device to add the new positional values to an expired table, wherein the expired table includes a time that the new range of IP addresses expires.

13 . A system for querying an internet protocol (IP) address, the system comprising:

at least one processor; and

a memory storing instructions that, when executed by the at least one processor, cause the at least one processor to:

receive an IP address;

generate a positional score for the IP address;

query a positional data set containing a plurality of positional values using the positional score to find a first matching positional value;

query a tag storage set containing a plurality of tag identifiers (IDs) using the first matching positional value to find a tag identifier (ID) from the plurality of tag IDs matching the first matching positional value, wherein the tag ID contains one or more tags with each of the one or more tags identifying a range of IP addresses containing the IP address;

receive a new range of IP addresses;

convert the range of IP addresses into new positional values; and

add the new positional values to the positional data set.

14 . The system of claim 13 , wherein the instructions that, when executed, cause the at least one processor to query the positional data set by performing a reverse range query using the positional score to find the first matching positional value.

15 . The system of claim 13 , further comprising instructions that, when executed, cause the at least one processor to perform an action in response to the IP address contained in the one or more tags identifying the range of IP addresses.

16 . The system of claim 15 , wherein the action includes blocking the IP address from accessing one or more components of a network.

17 . The system of claim 13 , further comprising instructions that, when executed, cause the at least one processor to add the new positional values to the tag storage set.

18 . The system of claim 13 , further comprising instructions that, when executed, causes the at least one processor to add the new positional values to an expired table, wherein the expired table includes a time that the new range of IP addresses expires.

Assignments (3)
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2023
From: WATERS, DAVID
To: BMC SOFTWARE, INC.
Reel/Frame 062955/0375 →