php - 获取当前用户所在的国家,而不是 IP 地址
问题描述
我试图解释我的问题:我网站的客户通常是提前从他们的国家或最后一刻预订的游客,他们已经在这里了。为了向已经在这里的用户而不是在家的用户提供最后一分钟的优惠,我使用了一个 PHP 脚本,该脚本通过 IP 地址识别位置。
到目前为止没有问题,只有通过移动电话网络(漫游)连接的许多用户的 IP 地址由他们的电话公司分配并位于他们的国家,所以他们永远不会看到我想向他们展示的报价。
我已经考虑过插入一个脚本,要求通过他们的设备进行地理定位,但我想避免这个恼人的请求,因为明显的隐私问题,许多人不会接受。简而言之,让导航快速而愉快以鼓励信心总是很重要的。
有没有人有好的建议?
解决方案
你可以试试geolocation 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/这个浏览器有支持。
- 火狐 3.5+
- 铬 5.0+
- Safari 5.0+
- 歌剧 10.60+
- 浏览器 9.0+