A method and system for predicting the geographic location of a network entity are described. Examples include predicting the geographic location of a network entity by directing the network entity to transmit one or more data packets to a number of predetermined network identifiers, such as IP addresses, where data corresponding to each of the network identifiers is part of a geographic location prediction model. In examples, a dataset that represents transit times for the data packets transmitted from the network entity to the hosts identified by the IP addresses is determined, and a geographic location for the network entity is predicted by applying the geographic location prediction model to the dataset.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for predicting a geographic location of a network entity, the method being implemented by one or more processors and comprising: directing a network entity to transmit one or more data packets to each of a plurality of predetermined network identifiers, the plurality of network identifiers being associated with a geographic location prediction model; determining a dataset representing transit times for the one or more data packets transmitted from the network entity to each of a plurality of hosts over a network, each of the plurality of hosts being identified by one of the plurality of predetermined network identifiers; and predicting a geographic location for the network entity by applying the geographic location prediction model to the dataset. 2. The method of claim 1, wherein the geographic location prediction model is a multivariate normal model generated from training data. 3. The method of claim 2, wherein the training data is generated from calculating transit times for one or more training data packets transmitted from devices located at a plurality of known geographic locations to the plurality of hosts. 4. The method of claim 1, further comprising: calculating each of the transit times for the one or more data packets transmitted from the network entity to the plurality of hosts over the network by (i) sending a request from a web browser running on the network entity to one of the plurality of hosts without opening a socket, (ii) starting a timer on the network entity, and (iii) halting the timer when a response to the request is received. 5. The method of claim 1, wherein applying the geographic location prediction model to the dataset also involves applying one or more secondary variables to the received dataset, wherein the one or more secondary variables comprise the network entity's line speed, connection type, Internet access provider, time of day, and network congestion. 6. The method of claim 1, wherein the geographic location comprises a pair of latitude and longitude coordinates. 7. The method of claim 1, wherein the plurality of hosts are web servers on the Internet. 8. The method of claim 1, wherein the network entity is a user's computing device. 9. The method of claim 1, wherein the network identifiers are Internet protocol (IP) addresses. 10. A geolocation system comprising: a memory resource to store instructions; one or more processors using the instructions stored in the memory resource to: direct a network entity to transmit one or more data packets to each of a plurality of predetermined network identifiers, the plurality of network identifiers being associated with a geographic location prediction model; determine a dataset representing transit times for the one or more data packets transmitted from the network entity to each of a plurality of hosts over a network, each of the plurality of hosts being identified by one of the plurality of predetermined network identifiers; and predict a geographic location for the network entity by applying the geographic location prediction model to the dataset. 11. The system of claim 10, wherein the geographic location prediction model is a multivariate normal model generated from training data. 12. The system of claim 11, wherein the training data is generated from calculating transit times for one or more training data packets transmitted from devices located at a plurality of known geographic locations to the plurality of hosts. 13. The system of claim 10, further comprising instructions to: calculate each of the transit times for the one or more data packets transmitted from the network entity to the plurality of hosts over the network by (i) sending a request from a web browser running on the network entity to one of the plurality of hosts without opening a socket, (ii) starting a timer on the network entity, and (iii) halting the timer when a response to the request is received. 14. The system of claim 10, wherein applying the geographic location prediction model to the dataset also involves applying one or more secondary variables to the received dataset, wherein the one or more secondary variables comprise the network entity's line speed, connection type, Internet access provider, time of day, and network congestion. 15. The system of claim 10, wherein the geographic location comprises a pair of latitude and longitude coordinates. 16. The system of claim 10, wherein the plurality of hosts are web servers on the Internet. 17. The system of claim 10, wherein the network entity is a user's computing device. 18. The system of claim 10, wherein the network identifiers are Internet protocol (IP) addresses. 19. A computer-readable medium for geolocation, the computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations that include: directing a network entity to transmit one or more data packets to each of a plurality of predetermined network identifiers, the plurality of network identifiers being associated with a geographic location prediction model; determining a dataset representing transit times for the one or more data packets transmitted from the network entity to each of a plurality of hosts over a network, each of the plurality of hosts being identified by one of the plurality of predetermined network identifiers; and predicting a geographic location for the network entity by applying the geographic location prediction model to the dataset.