我正在测试地理定位API,并得到了一些奇怪的结果。我有(我的)接入点,并且知道它们的Wifi MAC地址。在服务器上我需要得到他们的位置。我发送了2个或更多这样的MAC地址,在某些情况下得到了非常好的-精确的位置。在其他情况下,我得到的位置是完全不同的国家。
我假设在这种情况下,Google不能通过Mac地址(没有足够的数据或其他什么)来确定位置,并且可能根据我的服务器IP (云托管,不同的国家等)返回位置。
有没有办法让我知道这个计算是基于MAC或Ip地址的,这样我就可以“拒绝”IP结果??
我目前使用的解决方案是,如果精度低于500m,我会接受结果(我假设这是基于MACs的正确结果),但如果有更可靠的解决方案,我会更愿意接受。
感谢您的任何建议,答案等。
发布于 2015-03-11 09:06:14
根据您使用的浏览器的不同,HTML5地理定位应用程序接口会根据您的公共IP地址、手机发射塔ID、全球定位系统信息、Wifi接入点列表、信号强度和MAC (Wifi和/或蓝牙)等一系列因素来估算位置。然后,它通常通过HTTPS请求将该信息传递到位置服务,该服务尝试从各种数据库中关联您的位置,这些数据库包括公开和私有的Wifi接入点位置,以及手机发射塔和IP地址位置。然后,通过JavaScript回调将大致位置返回给您的代码。
您的案例看起来像是在使用VPN。如果启用了VPN,则该位置将解析为VPN的公共IP地址。例如,丹佛的用户登录到公司VPN,该公司的主机托管在其位于德克萨斯州达拉斯郊区的总部办公室。HTML5地理位置应用编程接口会将位置解析为达拉斯的总部公共IP地址,而不是用户的实际位置。出于安全原因,相当多的企业用户拥有VPN。
https://stackoverflow.com/questions/28963022
复制相似问题