我正在测试Geolocation API并获得一些奇怪的结果。 我有(我的)接入点并知道他们的Wifi MAC地址。在服务器上我需要得到他们的位置。我发送2个或更多这些MAC地址,并在某些情况下获得非常精确的位置。在其他情况下,我在完全不同的国家/地区获得了位置。
我认为在这种情况下,Google无法通过Mac地址确定位置(没有足够的数据或其他),并且可能根据我的服务器IP(云托管,不同国家/地区等)返回位置。
我有什么方法可以知道这个计算是基于MAC或IP地址的,所以我可以拒绝' IP结果??
我目前使用的解决方案是,如果准确度小于500米(我认为它是基于MAC的正确结果),我接受结果,但是如果有更可靠的解决方案,则更愿意。
感谢任何建议,答案等。
答案 0 :(得分:1)
根据您使用的浏览器,HTML5地理定位API会根据多种因素来近似位置,包括您的公共IP地址,手机信号塔ID,GPS信息,Wifi接入点列表,信号强度和MAC ID(Wifi)和/或蓝牙)。然后,它通常通过HTTPS请求将该信息传递给位置服务,该请求尝试将您的位置与包括公共和私有Wifi接入点位置以及Cell Tower和IP地址位置的各种数据库相关联。然后通过JavaScript回调将大致位置返回到您的代码。
您的案例看起来像是在使用VPN。如果VPN已打开,则该位置将解析为VPN的公共IP地址。例如,丹佛的用户登录到公司VPN,该公司的主机位于德克萨斯州达拉斯郊区的总部办公室。 HTML5 Geolocation API将解析位于达拉斯总部公共IP地址的位置,而不是用户的实际位置。出于安全原因,相当多的企业用户拥有VPN。