A method for automatically determining location of a querying mobile device, wherein the querying mobile device and a plurality of mobile devices operate in a communication network, the method comprising: electronically receiving, via the communication network, a request from the querying mobile device to determine a location of the querying mobile device; assigning a temporary identifier to the querying mobile device, wherein the temporary identifier is a medium access control address different than a medium access control address assigned to the querying mobile device during a previous attempt by the querying mobile device to be located; automatically identifying, from among the plurality of mobile devices, one or more participating mobile devices (140A, 140B) that potentially are physically proximate to the querying mobile device, wherein the participating mobile devices are configured to participate in determining location of the querying mobile device; electronically transmitting, to the one or more participating mobile devices via the communication network, a request to scan for a location broadcast message transmitted by the querying mobile device, wherein the location broadcast message is a WiFi beacon which includes the temporary identifier; electronically receiving one or more location broadcast reports from the one or more participating mobile devices, wherein each received location broadcast report is indicative of the location broadcast message having been received at a corresponding participating mobile device; receiving the temporary identifier in each of the one or more location broadcast reports; automatically estimating the location of the querying mobile device based on (i) the received one or more location broadcast reports and (ii) respective locations of the participating mobile devices from which the one or more location broadcast reports were received; and electronically transmitting the estimated location to the querying mobile device via the communication network. electronically receiving, via the communication network, a request from the querying mobile device to determine a location of the querying mobile device; assigning a temporary identifier to the querying mobile device, wherein the temporary identifier is a medium access control address different than a medium access control address assigned to the querying mobile device during a previous attempt by the querying mobile device to be located; automatically identifying, from among the plurality of mobile devices, one or more participating mobile devices (140A, 140B) that potentially are physically proximate to the querying mobile device, wherein the participating mobile devices are configured to participate in determining location of the querying mobile device; electronically transmitting, to the one or more participating mobile devices via the communication network, a request to scan for a location broadcast message transmitted by the querying mobile device, wherein the location broadcast message is a WiFi beacon which includes the temporary identifier; electronically receiving one or more location broadcast reports from the one or more participating mobile devices, wherein each received location broadcast report is indicative of the location broadcast message having been received at a corresponding participating mobile device; receiving the temporary identifier in each of the one or more location broadcast reports; automatically estimating the location of the querying mobile device based on (i) the received one or more location broadcast reports and (ii) respective locations of the participating mobile devices from which the one or more location broadcast reports were received; and electronically transmitting the estimated location to the querying mobile device via the communication network.