1. A method performed by a server device, the method comprising: receiving, by the server device from a mobile device corresponding to a reference contact in a database of contacts, a request for contacts in the database of contacts linked, via one or more other contacts in the database of contacts, to one or more contacts, associated with the reference contact, identified in contact information for a subset of the database of contacts; searching, by a processor of the server device, contact information for the one or more other contacts in the database of contacts to identify a type and a number of contact links linking each of the requested contacts to the one or more contacts identified in the contact information for the subset of the database of contacts; determining, by a processor of the server device, a database distance between the reference contact and each of the requested contacts, based on the type and the number of the contact links linking each of the requested contacts to the one or more contacts identified in the contact information for the subset of the database of contacts; determining, by a processor of the server device, a proximity of respective mobile devices, identified in contact information associated with different ones of the requested contacts, relative to the first mobile device; ranking, by a processor of the server device, the requested contacts based on: the determined database distances and the determined proximities; and providing the ranked contacts and at least a phone number identified in the contact information associated with each of the respective mobile devices, to the first mobile device.