Patent ID: 7720996

Claim:
A method performed by a computing device for selecting a peer that is providing a requested resource being shared on a peer-to-peer network, the resource having been requested by another peer in the peer-to-peer network, the peers comprising devices participating in a peer-to-peer network in which each peer publishes resources originating therefrom, each peer caches resources published by and obtained from other peers, each peer provides its cached resources to the other peers, and peers originate requests for resources stored by other peers and thereby obtain resources from other peers, the method comprising: obtaining blocks of IP address assignments of peers in the peer-to-peer network, the blocks of IP address assignments having been obtained from Address Allocation Tables (AATs) of a plurality of respective Internet Protocol (IP) address assigning registrars; processing and storing said obtained blocks of IP address assignments, and storing in association with each block of IP address assignments corresponding assignment information comprising information identifying the registrar from which the block of IP address assignments was obtained and which assigned IP addresses in the block, wherein some of the blocks of IP address assignments contain IP addresses of peers in the peer-to-peer network; receiving autonomous system (AS) numbers of peers in the peer-to-peer network and storing AS information indicating which IP addresses of the peers are associated with which of the AS numbers; receiving a first IP address of a requesting peer in the peer-to-peer network that is originating a request for a target resource; determining from the AS information the AS number of the first IP address; selecting a plurality of IP addresses of peers based on the peers of the respective IP addresses having the target resource and selecting the plurality of IP addresses based on the IP addresses having, according to the AS information, an AS number matching the AS number of the first IP address; determining proximity measures indicating proximities between said first IP address and the plurality of IP addresses, where the proximity measures between the first IP address and each of the plurality of IP addresses, respectively, are based at least in part on the assignment information of the first IP address and the assignment information of the plurality of IP addresses; and transmitting to the requesting peer one of the IP addresses selected based on its corresponding proximity measure.