# US 8,788,664 B2 · Mapping network addresses to geographical locations

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,664 B2
- Document ID: US8788664B2
- Status: Granted
- Kind: B2
- Application number: 13/752,216
- Filed: 2013-01-28
- Published: 2013-06-06
- Granted: 2014-07-22
- Earliest claimed: 2007-10-12
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Chuanxiong Guo; Jiahe Helen Wang; Qing Yu; Yongguang Zhang; Youjun Liu
- Web page: https://patentgrep.com/patent/US8788664B2

## CPC

- H04L 61/50: Address allocation
- G06F 16/29: Geographical information databases
- G06F 16/9537: Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A network address mapping system is described. The network address mapping system can identify a set of Web pages, collects information from the Web pages indicating geographical locations (“geolocations”), and correlate the geolocations with the network addresses from which the identified Web pages are served. The collected information can be weighted based on various factors, such as its relative position in a Web page. The collected information can then be used to identify a geolocation. The network mapping system can deduce geolocations for portions of ranges of network addresses based on the score, and can infer geolocations for other portions based on the deduced geolocations. This mapping can then be stored in a database and provided as a geomapping service. The network address mapping system is able to map network addresses to geographical locations. Thereafter, when a user's client computing device accesses a Web server, the Web server can easily and accurately determine a geographical location by querying the database storing the mapping or a geomapping service.

## Claims

### Claim 1

A method performed by a computing device for mapping network addresses to geographic locations, comprising:
for each of a plurality of network addresses in the same range of network addresses:
retrieving from a server responding to the network address contents of a web page;
identifying geographical information contained in the contents;
scoring the identified geographical information;
processing the scored geographical information to identify a geographical location;
mapping the network address to the identified geographical location;
for a selected one of the network addresses, in response to the score established for the geographical information identified in the contents of the server responding to the selected network address:
determining a geographical location identified for a majority of the plurality of network addresses; and
remapping the selected network address to the determined geographical location.

### Claim 2 (depends on 1)

The method of claim 1 wherein, for a distinguished network address, the retrieving, identifying, scoring, and processing is performed for each of a plurality of web pages retrievable from the server responding to the distinguished network address,
the method further comprising, for each geographical location identified for any of the plurality of webpages retrievable from the server responding to the distinguished network address, aggregating the scores of the geographical information for which the geographical location was identified to obtain an aggregated score for the geographical location;
and wherein the distinguished network addresses mapped to the geographical location having the highest aggregated score.

### Claim 3 (depends on 1)

The method of claim 1 wherein the contents comprise a telephone number displayed to users who navigate to the web page.

### Claim 4 (depends on 1)

The method of claim 1 wherein the contents comprise a common abbreviation for a geographical address.

### Claim 5 (depends on 1)

The method of claim 1 wherein the score for content varies based on a position in the web page at which the content occurs.

### Claim 6 (depends on 5)

The method of claim 5 wherein the score is higher when the position is near a bottom of the web page.

### Claim 7

A computer-readable storage device storing contents adapted to cause a computing device to perform a method for mapping network addresses to geographical locations, the method comprising:
for each of a plurality of network addresses in the same range of network addresses:
retrieving from a server responding to the network address contents of a web page;
identifying geographical information contained in the contents;
scoring the identified geographical information;
processing the scored geographical information to identify a geographical location;
mapping the network address to the identified geographical location;
for a selected one of the network addresses, in response to the score established for the geographical information identified in the contents of the server responding to the selected network address:
determining a geographical location identified for a majority of the plurality of network addresses; and
remapping the selected network address to the determined geographical location.

### Claim 8 (depends on 7)

The computer-readable storage device of claim 7 wherein, for a distinguished network address, the retrieving, identifying, scoring, and processing is performed for each of a plurality of web pages retrievable from the server responding to the distinguished network address,
the method further comprising, for each geographical location identified for any of the plurality of webpages retrievable from the server responding to the distinguished network address, aggregating the scores of the geographical information for which the geographical location was identified to obtain an aggregated score for the geographical location;
and wherein the distinguished network addresses mapped to the geographical location having the highest aggregated score.

### Claim 9 (depends on 7)

The computer-readable storage device of claim 7 wherein the contents comprise a telephone number displayed to users who navigate to the web page.

### Claim 10 (depends on 7)

The computer-readable storage device of claim 7 wherein the contents comprise a common abbreviation for a geographical address.

### Claim 11 (depends on 7)

The computer-readable storage device of claim 7 wherein the score for content varies based on a position in the web page at which the content occurs.

### Claim 12 (depends on 11)

The computer-readable storage device of claim 11 wherein the score is higher when the position is near a bottom of the web page.

### Claim 13

A system for mapping network addresses to geographical locations, comprising:
a retrieval component that, for each of a plurality of uniform resource locations, retrieves a web page identified by the uniform resource location from a network address;
an execution engine that maps network addresses to geographical locations based on geographical information contained in the web page or webpages retrieved from each of those network addresses;
a correlation component that correlates the geographical information with a geographical location and iteratively clusters the correlations in increasingly larger ranges of network addresses; and
a filter component that filters correlated geographical information by inferring geographical locations for network address ranges for which geographical information could not be mapped by (1) filling in missing geographical location with an identified geographical location when a majority of the network addresses in the range are mapped to the identified geographical location and (2) correcting a geographical location to be the same as the identified geographical location.

### Claim 14 (depends on 13)

The system of claim 13 further comprising a scoring component that scores the geographical information.

### Claim 15 (depends on 13)

The system of claim 13 further comprising a second filter component that filters correlated geographical information by replacing a first geographical location for a network address range with a second geographical location for the network address range when a majority of smaller portions of the network address range indicate the second geographical location.

### Claim 16 (depends on 13)

The system of claim 13 further comprising a second filter component that filters correlated geographical information by mapping a portion of a network address range to a geographical location when a majority of other portions of the network address range indicate the geographical location.

### Claim 17 (depends on 13)

The system of claim 13 wherein the execution engine is a distributed execution engine wherein a correlation component executes in each of multiple computing devices associated with the execution engine.

### Claim 18 (depends on 13)

The system of claim 13 further comprising a service component that receives a network address and provides a geographical location to which the network address is mapped.
