我知道浏览器会分享我的IP地址和附近无线网络的详细信息,以确定我的位置,但它知道附近的无线网络有哪些信息?
例如,我居住的地方没有公共无线网络,从我家我可以看到大约5个私人网络,但我的位置确定在20米内。由于附近没有开放式网络,Google如何确定我的位置?我能想到的唯一方法是,Google在为街景视图绘制街道时映射了所有无线网络的位置。
我在网上搜索过,但我找不到任何具体细节。
答案 0 :(得分:68)
Firefox发送给Google的数据是所有可见的访问点,公共或私有。对于检测到的每个接入点,它会将以下数据发送到https://www.google.com/loc/json
:
"mac_address": "01-23-45-67-89-ab",
"signal_strength": 8,
"age": 0,
"SSID": "MyAccessPoint"
其中
mac_address
是WiFi节点的mac地址。signal_strength
是以dBm为单位测量的当前信号强度。age
是自检测到WiFi节点以来的毫秒数。SSID
是WiFi节点的名称或ESSID。用于对您的请求进行地理编码的地理配准WiFi数据为collected when Google was driving around taking pictures for StreetView。
值得注意的是,这就是使用Google的地理定位服务在Firefox上实现HTML5地理定位API的方式。 这是一项实施,而非规范。如果您的设备具有内置GPS,则可能需要您的HTML5实施直接查询GPS,而不是使用地理定位服务。
即使firefox在Windows和Linux上实现此功能也不同。在Windows上使用当前的Firefox,所有可见WiFi节点的详细信息都将发送给Google。在Linux上使用当前的Firefox,由于访问点数据为reliance on libiw
,因此仅发送当前连接的WiFi节点的详细信息。
正如另一位回答者所说,Safari使用Skyhook Wireless的服务与Google的位置服务大致相同。
答案 1 :(得分:6)
数据由Skyhook Wireless (Wikipedia)收集,他们不区分公共和私人wifi点 - 他们记录所有这些点的位置。如果谷歌街景货车还记录了接入点的位置数据,我不会感到惊讶。