PHP页面排名根据IP&;位置

PHP页面排名根据IP&;位置,php,mysql,location,ip,analytics,Php,Mysql,Location,Ip,Analytics,我有一个基于内容的网站。有500多页,而且还在增加。我也在使用谷歌分析,但我想发现哪些页面在不同的位置很受欢迎。我无法在Google Analytics上找到简单的解决方案,所以我实现了自己的系统 每次用户打开页面时,我都会记录4列: id\u用户,id\u页面,时间,IP\u用户 for IP field I am using: //Test if it is a shared client if (!empty($_SERVER['HTTP_CLIENT_IP'])){ $ip=$_SE

我有一个基于内容的网站。有500多页,而且还在增加。我也在使用谷歌分析,但我想发现哪些页面在不同的位置很受欢迎。我无法在Google Analytics上找到简单的解决方案,所以我实现了自己的系统

每次用户打开页面时,我都会记录4列: id\u用户,id\u页面,时间,IP\u用户

for IP field I am using:
//Test if it is a shared client
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
  $ip=$_SERVER['HTTP_CLIENT_IP'];
//Is it a proxy address
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
  $ip=$_SERVER['REMOTE_ADDR'];
}
//The value of $ip at this point would look something like: "192.0.34.166"
$ip = ip2long($ip);
//The $ip would now look something like: 1073732954
为了提高数据库效率,该代码将IP编码为较小的数字。对于地理位置信息,我使用与用户IP的调用,它会给出位置。我不记录国家和城市,因为我相信它会减慢页面速度

我应该得到两个分析数据的位置,所以我准备了一个CRON作业,将city&country插入到我在IP中提到的表中。但限制每分钟120次查找。[2] 因此,这种限制可能会在未来制造麻烦


我想问你我设计的系统是否有缺陷?或者有谁知道一个更好的系统可以在不降低页面速度的情况下跟踪用户的位置吗?

仅服务器日志文件(这几乎不会影响服务速度)就可以为您提供足够丰富的数据,供后续分析使用。是的,这是一种方法。但是服务器日志保留了更多的细节,我不想像处理每个文档请求和其他我不感兴趣的页面那样处理这些细节。不过,扫描web服务器日志以收集数据更有效。您甚至可以将其复制到另一台机器上,以卸载web服务器本身。在解析日志时,您可以缓存、汇总、查找等许多您需要做的事情。这样,您可能在数据库中存储更少的内容。您可以始终将服务器配置为将您感兴趣的请求记录到单独的文件中。