IP Library Granted Patent US 7,577,670
Granted Patent B2
US 7,577,670 · App. 10/794,063 · Granted Aug 18, 2009

Method and apparatus for inferring address and subnet relationships

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 7,577,670
App. No.
10/794,063
Granted
Aug 18, 2009
Kind
B2
Abstract

Methods and systems are disclosed for inferring address and subnet relationships. An exemplary method includes identifying a first address associated with a subnet; determining a length of a prefix part of the first address; determining a length of a prefix part of a second address; determining when a portion of the second address matches a portion of the first address; and determining when the lengths of the prefix parts of the first and second addresses are equal. A relationship between the second address and the subnet is inferred when the portion of the second address matches the portion of the first address and the lengths of the prefix parts of the first and second addresses are equal.

Claims (140)

1. A computer implemented method for inferring address and subnet relationships, the method comprising:

identifying, by a processor, a first address associated with a subnet;

determining, by a processor, when a portion of a second address matches a portion of the first address; wherein the first address includes a prefix part and a non-prefix part; and the second address includes a prefix part and a non-prefix part;

determining, by a processor, when lengths of the prefix parts of the first and second addresses are equal based on a first stored prefix length value corresponding to the first address and a second stored prefix length value corresponding to the second address;

inferring, by a processor, a relationship between the second address and the subnet when the portion of the second address matches the portion of the first address, and the first stored prefix length value and the second stored prefix length value are equal;

converting the first address to a binary bit string; and

truncating the binary bit string to the length of the prefix part of the first address to form the portion of the first address;

wherein the determining when the portions of the first and second addresses match comprises performing an SQL wildcard match for the second address using the truncated binary bit string.

2. The method of claim 1 , comprising:

determining when the second address is a subnet address; and

inferring the relationship between the second address and the subnet when the second address is not a subnet address.

3. The method of claim 1 , comprising:

identifying an interface associated with the second address; and

identifying a node associated with the interface.

4. The method of claim 1 , wherein:

the subnet is an IPv6 prefix group;

the first address is a prefix group address associated with the IPv6 prefix group; and

the second address is an IPv6 address.

5. The method of claim 1 , wherein:

the subnet is an IPv4 subnet;

the first address corresponds to a subnet address associated with the IPv4 subnet;

the second address is an IPv4 address; and

the lengths of the prefix parts of the first and second addresses are equal to a length of a subnet mask associated with the IPv4 subnet.

6. The method of claim 1 , comprising:

presenting a first symbol representing the subnet connected to a second symbol representing a device having the second address when a relationship is inferred between the second address and the subnet.

7. A computer implemented method for inferring address and subnet relationships, the method comprising:

determining, by a processor, when a second address is a subnet address;

identifying, by a processor, a subnet associated with the second address when the second address is a subnet address;

determining, by a processor, when a portion of the second address matches a portion of a first address; wherein the first address includes a prefix part and a non-prefix part; and the second address includes a prefix part and a non-prefix part;

determining, by a processor, when lengths of the prefix parts of the first and second addresses are equal based on a first stored prefix length value corresponding to the first address and a second stored prefix length value corresponding to the second address;

inferring, by a processor, a relationship between the subnet and the first address when the portion of the second address matches the portion of the first address, and the first stored prefix length value and the second stored prefix length value are equal; and

converting the first address to a binary bit string; and

truncating the binary bit string to the length of the prefix part of the first address to form the portion of the first address;

wherein the determining when the portions of the first and second addresses match comprising:

determining a length of the binary bit string;

appending at least one logical zero bit onto an end of the portion of the first address until the length of the truncated binary bit string plus the at least one appended logical zero bit equals the length of the binary bit string; and

performing an SQL query for the second address using the truncated binary bit plus the at least one appended logical zero bit.

8. The method of claim 7 , wherein:

the first address is an IPv6 address;

the subnet is an IPv6 prefix group; and

the second address is a prefix group address associated with the IPv6 prefix group.

9. The method of claim 7 , wherein:

the first address is an IPv4 address;

the subnet is an IPv4 subnet;

the second address corresponds to a subnet address associated with the IPv4 subnet; and

the lengths of the prefix parts of the first and second addresses are equal to a length of a subnet mask associated with the IPv4 subnet.

10. The method of claim 7 , comprising:

identifying an interface associated with the first address; and

determining a node associated with the interface.

11. The method of claim 7 , comprising:

presenting a first symbol representing the subnet connected to a second symbol representing a device having the first address when a relationship is inferred between the subnet and the first address.

12. A data model comprising a computer readable storage medium for inferring address and subnet relationships, the data model comprising:

a subnet object associated with a first address, the subnet object including a first code module configured to determine when a second address is included in a subnet associated with the first address based on a first stored prefix length entry value associated with the first address; and

an address object associated with the second address, the address object including a second code module configured to determine when the subnet associated with the first address includes the second address based on a second stored prefix length entry value associated with the second address,

wherein the first address includes a prefix part and a non-prefix part,

wherein the second address includes a prefix part and a non-prefix part,

wherein a relationship between the first address and the second address is inferred when it is determined that the subnet associated with the first address includes the second address and when the first stored prefix length entry value associated with the first address and the second stored prefix length entry value associated with the second address are equal; and

wherein the subnet object comprises:

a third code module configured to retrieve the first address from a relational database management system (RDBMS); and

a fourth code module configured to determine a length of a prefix part of the first address.

13. The data model of claim 12 , wherein the address object comprises:

a fifth code module configured to retrieve the second address from a relational database management system (RDBMS);

a sixth code module configured to retrieve the second address from the RDBMS in a bit string format;

a seventh code module configured to determine a length of a prefix part of the second a address;

an eighth code module configured to determine when the second address is a subnet address;

a ninth code module configured to identify a subnet associated with the second address when the second address is a subnet address; and

a tenth code module configured to identify at least one of an interface and a node associated with the second address.

14. A computer readable storage medium storing a computer program for inferring address and subnet relationships, wherein the computer program comprises executable instructions for:

identifying a first address associated with a subnet;

determining a length of a prefix part of the first address based on a first stored prefix length entry value associated with the first address;

determining a length of a prefix part of a second address based on a second stored prefix length entry value associated with the second address;

determining when a portion of the second address matches a portion of the first address;

determining when the lengths of the prefix parts of the first and second addresses are equal based on the first and second stored prefix length entry values;

inferring a relationship between the second address and the subnet when the portion of the second address matches the portion of the first address and the lengths of the prefix parts of the first and second addresses are equal;

converting the first address to a binary bit string; and truncating the binary bit string to the length of the prefix part of the first address to form the portion of the first address;

performing an SQL wildcard match for the second address using the truncated binary bit string;

wherein the first address includes the prefix part and a non-prefix part, and

wherein the second address includes the prefix part and a non-prefix part.

15. The computer readable storage medium of claim 14 , wherein the computer program comprises executable instructions for:

determining when the second address is a subnet address; and inferring the relationship between the second address and the subnet only when the second address is not a subnet address.

16. The computer readable storage medium of claim 14 , wherein the computer program comprises executable instructions for:

identifying an interface associated with the second address; and identifying a node associated with the interface.

17. The computer readable storage medium of claim 14 , wherein the computer program comprises executable instructions for:

presenting a first symbol representing the subnet connected to a second symbol representing a device having the second address when a relationship is inferred between the second address and the subnet.

18. A computer readable storage medium storing a computer program for inferring address and subnet relationships, wherein the computer program comprises executable instructions for:

determining a length of a prefix part of a first address based on a first stored prefix length entry value associated with the first address;

determining a length of a prefix part of a second address based on a second stored prefix length entry value associated with the second address;

determining when the second address is a subnet address;

identifying a subnet associated with the second address when the second address is a subnet address;

determining when a portion of the second address matches a portion of the first address;

determining when the lengths of the prefix parts of the first and second addresses are equal based on the first and second stored prefix length entry values;

inferring a relationship between the subnet and the first address when the portion of the second address matches the portion of the first address and the lengths of the prefix parts of the first and second addresses are equal;

converting the first address to a binary bit string; and truncating the binary bit string to the length of the prefix part of the first address to form the portion of the first address;

determining a length of the binary bit string;

appending at least one logical zero bit onto an end of the portion of the first address until the length of the truncated binary bit string plus the at least one appended logical zero bit equals the length of the binary bit string; and

performing an SQL query for the second address using the truncated binary bit plus the at least one appended logical zero bit;

wherein the first address includes the prefix part and a non-prefix part, and

wherein the second address includes the prefix part and a non-prefix part.

19. The computer readable storage medium of claim 18 , wherein the computer program comprises executable instructions for:

identifying an interface associated with the first address; and

determining a node associated with the interface.

20. The computer readable storage medium of claim 18 , wherein the computer program comprises executable instructions for:

presenting a first symbol representing the subnet connected to a second symbol representing a device having the first address when a relationship is inferred between the subnet and the first address.

21. A computer implemented system for inferring address and subnet relations, comprising:

a processor for identifying a first address associated with a subnet, determining a length of a prefix part of the first address based on a first stored prefix length entry value associated with the first address, determining a length of a prefix part of a second address based on a second stored prefix length entry value associated with the second address, determining when a portion of the second address matches a portion of the first address, determining when the lengths of the prefix parts of the first and second addresses are equal based on the first and second stored prefix length entry value, and inferring a relationship between the second address and the subnet when the portion of the second address matches the portion of the first address and the lengths of the prefix parts of the first and second addresses are equal; and

a display associated with the processor for presenting the relationship;

wherein the processor converts the first address to a binary bit string, truncates the binary bit string to the length of the prefix part of the first address to form the portion of the first address, and performs an SQL wildcard match for the second address using the truncated binary bit string.

22. The system according to claim 21 , wherein:

the subnet is an IPv6 prefix group;

the first address is a prefix group address associated with the IPv6 prefix group; and

the second address is an IPv6 address.

23. The system according to claim 21 , wherein:

the subnet is an IPv4 subnet;

the first address corresponds to a subnet address associated with the IPv4 subnet;

the second address is an IPv4 address; and

the lengths of the prefix parts of the first and second addresses are equal to a length of a subnet mask associated with the IPv4 subnet.

24. A computer implemented system for inferring address and subnet relationships, comprising:

a processor for determining a length of a prefix part of a first address-based on a first stored prefix length entry value associated with the first address, determining a length of a prefix part of a second address based on a second stored prefix length entry value associated with the second address, determining when the second address is a subnet address, identifying a subnet associated with the second address when the second address is a subnet address, determining when a portion of the second address matches a portion of the first address, determining when the lengths of the prefix parts of the first and second addresses are equal based on the first and second stored prefix length entry value, and inferring a relationship between the subnet and the first address when the portion of the second address matches the portion of the first address and the lengths of the prefix parts of the first and second addresses are equal; and

a display associated with the processor for presenting the relationships;

wherein the processor, converts the first address to a binary bit string, truncates the binary bit string to the length of the prefix part of the first address to form the portion of the first address, determines a length of the binary bit string, appends at least one logical zero bit onto an end of the portion of the first address until the length of the truncated binary bit string plus the at least one appended logical zero bit equals the length of the binary bit string; and

performs an SQL query for the second address using the truncated binary bit plus the at least one appended logical zero bit.

25. The system according to claim 24 , wherein:

the first address is an IPv6 address;

the subnet is an IPv6 prefix group; and

the second address is a prefix group address associated with the IPv6 prefix group.

26. The system according to claim 24 , wherein:

the first address is an IPv4 address;

the subnet is an IPv4 subnet;

the second address corresponds to a subnet address associated with the IPv4 subnet; and

the lengths of the prefix parts of the first and second addresses are equal to a length of a subnet mask associated with the IPv4 subnet.

27. The method of claim 1 , wherein the first and second addresses are both read from a RDBMS address table.

28. The method of claim 7 , wherein the first and second addresses are both read from a RDBMS address table.

29. The data model of claim 12 , wherein the first and second addresses are both read from a RDBMS address table.

30. The computer readable storage medium of claim 14 , wherein the first and second addresses are both read from a RDBMS address table.

31. The computer readable storage medium of claim 18 , wherein the first and second addresses are both read from a RDBMS address table.

32. The system of claim 21 , wherein the first address includes the prefix part and a non-prefix part, and wherein the second address includes the prefix part and a non-prefix part.

33. The system of claim 32 , wherein the first and second addresses are both read from a RDBMS address table.

34. The system of claim 24 , wherein the first address includes the prefix part and a non-prefix part, and wherein the second address includes the prefix part and a non-prefix part.

35. The system of claim 34 , wherein the first and second addresses are both read from a RDBMS address table.

36. The method of claim 1 , wherein determining the length of the prefix part of the first address and determining the length of the prefix part of the second address are performed before inferring the relationship.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 056157/0492 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →