获取当前用户所在的国家/地区而不是IP地址

时间:2019-02-26 18:51:33

标签: php geolocation

我试图解释我的问题:我网站的客户通常是游客,他们是从他们的国家/地区提前预订或在他们已经在这里的最后一刻预订的。为了向已经在这里的用户而不是在家的用户提供最新报价,我使用了一个PHP脚本,该脚本通过IP地址识别位置。

到目前为止,没有问题,只有通过移动电话网络(漫游)连接的许多用户都拥有其电话公司分配的IP地址,并且位于他们的国家/地区,因此他们永远也看不到我想向他们显示的优惠。

我已经考虑过插入一个脚本,要求通过其设备进行地理位置定位,但是我想避免这种令人讨厌的请求,因为许多人不会因为明显的隐私问题而接受该请求。简而言之,快速,愉快地导航以激发信心一直很重要。

有人建议吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用地理位置API。

仅作为示例...


if ("geolocation" in navigator) {
  navigator.geolocation.getCurrentPosition(function(position) {
     do_something(position.coords.latitude, position.coords.longitude);
   });
} else {
  /* geolocation IS NOT available */
}

引用来自:https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API

根据站点点:https://www.sitepoint.com/browser-geolocation/,此浏览器具有支持。

  • Firefox 3.5 +
  • Chrome 5.0及更高版本
  • Safari 5.0 +
  • Opera 10.60 +
  • Internet Explorer 9.0 +