有可能获得网站访问者';的国家和城市,而不使用IP地址数据库


Is it possible to get website visitor's country and city without using an IP address database?

是否可以在不使用ip地址的情况下获取网站访问者的位置?我在我的网络应用程序中使用geoplugin,使用我从获得的IP地址来获取访问者的位置

$ip = $_SERVER['REMOTE_ADDR'];

但有时它不返回任何数据?

是!虽然没有关于应用程序的更多细节,但很难判断要实现什么。

如果这是一个基于浏览器的应用程序,您可以要求浏览器使用navigator.geolocation.getcurrentposition进行地理定位,然后在成功回调中将数据和请求一起发送到php。

请注意,此调用需要用户权限,是异步的,可能需要很长时间才能返回。

尝试W3C地理定位API

万维网联盟(W3C)致力于标准化用于检索客户端设备的地理位置信息的接口。它定义了一组符合ECMAScript标准的对象,这些对象在客户端应用程序中执行,通过咨询位置信息服务器为客户端的设备提供位置,位置信息服务器对应用程序编程接口(API)是透明的。

最常见的位置信息来源是IP地址、Wi-Fi和蓝牙MAC地址、射频识别(RFID)、Wi-Fi连接位置或设备全球定位系统(GPS)和GSM/CDMA小区ID。根据可用的最佳位置信息源,以给定的精度返回位置。

参考

您尝试过$_SERVER['HTTP_X_FORWARDED_FOR']吗?