IP Library Granted Patent US 11,496,590
Granted Patent B2
US 11,496,590 · App. 17/173,928 · Granted Nov 8, 2022

Determining geographic locations of network devices

Inventor: William Bullock (Palo Alto, CA)
Assignee: Meta Platforms, Inc.
H04L67/52G06F16/29G06F16/9537G06N20/00H04L51/222H04L51/52G06F16/487H04L2101/69H04W4/029
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 11,496,590
App. No.
17/173,928
Granted
Nov 8, 2022
Kind
B2
Abstract

In one embodiment, a method includes generating predicted locations of each of a plurality of network addresses, wherein each predicted location is associated with a time stamp representing an age of the predicted location, determining a weighting factor representing a probability that at least one of the predicted locations of the network address corresponds to a true location of the network address based on location-related features associated with each network address and the time stamps, determining a weight for each predicted location based on at least the weighting factor, wherein the weight represents a probability that the predicted location corresponds to the true location of the network address, and providing one or more of the predicted locations that correspond to a particular network address based on the respective weights of the predicted locations in response to a request to identify a geographic location for the particular network address.

Claims (57)

1. A method comprising, by one or more computer systems:

generating one or more predicted locations of each of a plurality of network addresses, wherein each predicted location is associated with a time stamp representing an age of the predicted location;

determining, for the one or more predicted locations, based on one or more location-related features associated with each network address and the time stamps representing the ages of the predicted locations, a weighting factor representing a probability that at least one of the predicted locations of the network address corresponds to a true location of the network address;

determining, for each of the predicted locations, a weight based on at least the weighting factor, wherein the weight represents a probability that the predicted location corresponds to the true location of the network address; and

providing, in response to a request to identify a geographic location for a particular network address, one or more of the predicted locations that correspond to the particular network address based on the respective weights of the predicted locations.

2. The method of claim 1 , wherein a value of each weight corresponding to the predicted location is based on the weighting factor and a previous value of the weight.

3. The method of claim 2 , wherein the value of the weight corresponding to the predicted location is based on a product of the weighting factor and the previous value of the weight.

4. The method of claim 1 , further comprising:

updating one or more of the predicted locations, wherein the updating comprises:

determining an updated value of the weighting factor based on the ages of the predicted locations; and

determining updated values of the weights based on the updated value of the weighting factor, wherein a sum of the updated values of the weights is less than 1.

5. The method of claim 4 , wherein updating the one or more of the predicted locations is in response to an interval of time elapsing or receiving a location update.

6. The method of claim 1 , wherein the one or more predicted locations are associated with an other-location weight that represents a probability that the true location of the network address does not correspond to any of the predicted locations of the network address, and a sum of the weights of the predicted locations and the other-location weight is 1.

7. The method of claim 6 , further comprising:

determining the other-location weight based on a difference between 1 and the sum of the updated values of the weights of the predicted locations.

8. The method of claim 1 , wherein each of the plurality of network addresses is associated with one or more first geographic locations, the method further comprising:

receiving a location update comprising a second geographic location of each network address and a time stamp indicating an age of the second geographic location;

determining whether the age of the second geographic location satisfies a recent age threshold; and

when the age of the second geographic location satisfies the recent age threshold:

determining an updated value of the weighting factor, wherein the updated value is a maximum weighting factor, and

determining an updated value of the weight associated with the second geographic location based on the current value of the weight and the updated value of the weighting factor.

9. The method of claim 1 , wherein the weighting factor is determined by a machine-learning model based on the location-related features.

10. The method of claim 9 , wherein the location-related features comprise one or more of a country, a network protocol type, or a number of days at a current location.

11. The method of claim 9 , wherein each of the plurality of network addresses is associated with one or more first geographic locations, wherein the location-related features comprise a true location of the network address and a predictions-includes-true indicator that indicates whether the predicted locations include the true location, the method further comprising:

when the age of the second geographic location satisfies the recent age threshold:

setting the true location of the network address to correspond to a second geographic location; and

setting the prediction-includes-true-location indicator to true,

wherein the machine-learning model uses the predictions-include-true indicator as a feature in determining the weighting factor.

12. The method of claim 1 , wherein the at least one predicted location corresponds to the true location of the network address when the at least one predicted location is less than a threshold distance from the true location.

13. The method of claim 1 , wherein the at least one predicted location corresponds to the true location of the network address when the at least one predicted location is in a geographic sub-region associated with the true location, and the sub-region is in a geographic region associated with the network address.

14. The method of claim 1 , wherein each of the predicted locations of the network address comprises one or more of a country, a region of a country, a city, a zip code, a map tile, or a latitude, longitude pair.

15. The method of claim 1 , wherein each network address comprises an Internet Protocol (IP) address.

16. The method of claim 1 , further comprising:

receiving the request to identify a geographic location for a particular network address; and

identifying the one or more of the predicted locations that correspond to the particular network address, wherein the identifying comprises searching a table storing the predicted locations of the network address and their associated weights for a prediction table entry that comprises the particular network address, and retrieving the predicted locations from the prediction table entry,

wherein providing the one or more of the predicted locations that correspond to the particular network address comprises providing the weights associated with the provided predicted locations.

17. The method of claim 16 , wherein each of the plurality of network addresses is associated with one or more communication network addresses, wherein each of one or more of the communication network addresses is associated with at least one broadened address that is based on the communication network address and corresponds to a plurality of network addresses that includes the communication network address, the method further comprising:

identifying one or more of the broadened addresses that correspond to the particular network address,

wherein the response comprises one or more of the predicted locations that correspond to the broadened address.

18. The method of claim 1 , wherein each of the plurality of network addresses is associated with one or more communication network addresses, wherein each of the communication network addresses is associated with a plurality of granularity levels, and each granularity level comprises the following learning features:

one or more level-specific location predictions, wherein each level-specific location prediction includes a level-specific time stamp, a level-specific predicted location, and a level-specific weight,

a level-specific weighting factor,

a level-specific true location, and

a level-specific predicted-includes-true indicator,

wherein, for each granularity level, the level-specific weighting factor of is determined based on the level-specific learning features, and the level-specific weights are determined based on the level-specific weighting factor.

19. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

generate one or more predicted locations of each of a plurality of network addresses, wherein each predicted location is associated with a time stamp representing an age of the predicted location;

determine, for the one or more predicted locations, based on one or more location-related features associated with each network address and the time stamps representing the ages of the predicted locations, a weighting factor representing a probability that at least one of the predicted locations of the network address corresponds to a true location of the network address;

determine, for each of the predicted locations, a weight based on at least the weighting factor, wherein the weight represents a probability that the predicted location corresponds to the true location of the network address; and

provide, in response to a request to identify a geographic location for a particular network address, one or more of the predicted locations that correspond to the particular network address based on the respective weights of the predicted locations.

20. A system comprising:

one or more processors; and

one or more computer-readable non-transitory storage media coupled to one or more of the processors and comprising instructions operable when executed by one or more of the processors to cause the system to:

generate one or more predicted locations of each of a plurality of network addresses, wherein each predicted location is associated with a time stamp representing an age of the predicted location;

determine, for the one or more predicted locations, based on one or more location-related features associated with each network address and the time stamps representing the ages of the predicted locations, a weighting factor representing a probability that at least one of the predicted locations of the network address corresponds to a true location of the network address;

determine, for each of the predicted locations, a weight based on at least the weighting factor, wherein the weight represents a probability that the predicted location corresponds to the true location of the network address; and

provide, in response to a request to identify a geographic location for a particular network address, one or more of the predicted locations that correspond to the particular network address based on the respective weights of the predicted locations.

Assignments (1)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
Continuity (2)
Continuation 16049712 · Jul 30, 2018
Related Publication 20210168217A1 · Jun 3, 2021