我有一个基于内容的网站。有超过500页,它正在增加。我也在使用谷歌分析,但我想发现哪些页面在不同的位置受欢迎。我在Google Analytics上找不到简单的解决方案,因此我实施了自己的系统。
每次用户打开页面时,我都会记录4列: id_user,id_page,time,IP_user
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编码为较小的数字以提高数据库效率。对于geoLocation信息,我使用用户IP调用http://ipinfo.io/,它为我提供了位置。我不记录国家和城市,因为我认为它会降低网页速度。
两个分析数据我应该得到位置,所以我准备了一个CRON工作来插入city&我从IP中提到的国家。但http://ipinfo.io/限制每分钟120次查询。 [2]所以这种限制可能会在将来制造麻烦。
我想问你我设计的系统是否有缺陷?或者有没有人知道一个更好的系统来跟踪用户的位置而不降低页面速度?