Geolocation using reverse domain name server information
AssigneeMicrosoft Technology Licensing, LLC
InventorsOvidiu Dan, Vaibhav Girish Parikh, Maksym Bondarenko, Siddhartha Cingh Arora
Life of this patent
Estimating the term…
Abstract
Generating an improved/more accurate geolocation database is provided. Given a dataset of reverse DNS hostnames for IP addresses, ground truth information, and a hierarchical geographical database, a machine learning classifier can be trained to extract and disambiguate location information from the reverse DNS hostnames of IP addresses and to apply machine learning algorithms to determine location candidates and to select a most probable candidate for a reverse DNS hostname based on a confidence score. The classifier can be used to generate an accurate geolocation database, or to provide accurate geolocation information as a service.
Claims20
A system for accurately converting an IP address to a geolocation, comprising:
- a processing unit;
- and
- a memory, including computer readable instructions, which when executed by the processing unit causes the system to:
- receive a reverse DNS hostname as an input, wherein the reverse DNS hostname includes a plurality of hostname parts and wherein each hostname part corresponds to a feature type;
- access a plurality of dictionaries, wherein each dictionary corresponds to a feature type, and each dictionary comprises:
- a distinct key for matching one of the plurality of hostname parts to a list of candidate locations, and
- one or more features corresponding to each of the candidate locations;
- based on the plurality of dictionaries, generate a list of candidate locations with corresponding confidence scores, wherein generating the list of candidate locations comprises:
- splitting the input reverse DNS hostname into the plurality of hostname parts;
- for each hostname part, determining whether the hostname part matches a key in a dictionary of the plurality of dictionaries;
- when a hostname part matches a key, identifying corresponding candidate locations;
- for each candidate location, identifying one or more features corresponding to the candidate location;
- and
- assigning a confidence score to each candidate location;
- and
- determine a most likely candidate location based on the assigned confidence scores.
A method for accurately converting an IP address to a geolocation, comprising:
- receiving a reverse DNS hostname as an input;
- accessing a plurality of dictionaries, wherein each dictionary is associated with a feature type and comprises:
- a distinct key for matching against a part of a reverse DNS hostname, a list of candidate locations that match the distinct key, and one or more features for each of the candidate locations;
- based on the plurality of dictionaries, generating a list of candidate locations with corresponding confidence scores, wherein generating the list of candidate locations comprises:
- splitting the input reverse DNS hostname into hostname parts;
- iterating over each hostname part against the plurality of dictionaries for determining whether the hostname part matches a key in a dictionary;
- when a hostname part matches a key, identifying corresponding candidate locations and one or more features for the key;
- and
- assigning a confidence score to each candidate location;
- and
- determining a most likely candidate location based on the assigned confidence scores wherein the one or more features for each of the candidate locations include a value, and wherein assigning the confidence score to each candidate location includes assigning the confidence score based on the feature values.
A method for accurately converting an IP address to a geolocation, comprising:
- receiving a reverse DNS hostname as an input;
- accessing a plurality of dictionaries, wherein each dictionary is associated with a feature type and comprises:
- a distinct key for matching against a part of a reverse DNS hostname, a list of candidate locations that match the distinct key, and one or more features for each of the candidate locations;
- based on the plurality of dictionaries, generating a list of candidate locations with corresponding confidence scores, wherein generating the list of candidate locations comprises:
- splitting the input reverse DNS hostname into hostname parts;
- iterating over each hostname part against the plurality of dictionaries for determining whether the hostname part matches a key in a dictionary;
- and
- when a hostname part matches a key, identifying corresponding candidate locations and one or more features for the key;
- and
- determining a most likely candidate location of the list of candidate locations.
Dependencies are inferred from the claim text.