我知道浏览器会共享我的IP地址和附近无线网络的详细信息来确定我的位置,但是它知道关于附近wifi网络的哪些信息?
例如,我所住的地方没有公共无线网络,从我的家中可以看到大约5个专用网络,但我的位置确定在20米以内。由于附近没有开放的网络,Google如何确定我的位置?我能想到的唯一方法是,当Google为街景视图绘制街道时,它们会绘制所有无线网络的位置。
我已经在网上搜索了有关信息,但我找不到任何特定的详细信息。
我知道浏览器会共享我的IP地址和附近无线网络的详细信息来确定我的位置,但是它知道关于附近wifi网络的哪些信息?
例如,我所住的地方没有公共无线网络,从我的家中可以看到大约5个专用网络,但我的位置确定在20米以内。由于附近没有开放的网络,Google如何确定我的位置?我能想到的唯一方法是,当Google为街景视图绘制街道时,它们会绘制所有无线网络的位置。
我已经在网上搜索了有关信息,但我找不到任何特定的详细信息。
Answers:
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。当Google开车为StreetView拍照时,收集了用于对请求进行地理编码的地理WiFi数据。
需要特别注意的是,这就是使用Google的Geolocation Services在Firefox上嵌入HTML5地理位置API的方式。 这是一个实现,而不是一个规范。 如果您的设备具有内置GPS,则可能希望HTML5实现直接查询GPS,而不是使用地理位置服务。
甚至firefox在Windows和Linux上也以不同的方式实现此功能。使用Windows上的当前Firefox,所有可见的WiFi节点的详细信息都会发送到Google。在Linux上使用当前的Firefox,由于依赖于libiw
访问点数据,因此仅发送当前连接的WiFi节点的详细信息。
正如另一个回答者所指出的,Safari使用Skyhook Wireless的服务,该服务的功能与Google的位置服务大致相同。
数据是由Skyhook Wireless(Wikipedia)收集的,它们在公共和私人wifi点之间没有区别-它们记录了所有这些点的位置。如果Google Street View货车也记录了访问点的位置数据,我不会感到惊讶。