Zblog网站cdn加速后如何获取用户真实IP地址

很多站长都会遇到这样的问题,网站使用CDN加速后,统计分析工具提供的用户访问IP地址大多非真地址。这是因为使用CDN后,所有的用户请求都会通过CDN边缘节点访问,如边缘节点没有缓存,就会向客户源站服务器发起请求,故无法依照之前的方式获取最终用户IP地址。如果使用z-blog建站并使用cdn加速的话是如何获取用户的真实IP地址呢?那么今天就交大家一个简单的方法。

z-blog需要获取用户IP地址的地方大概有两处,一个后台建立新用户时需要获取当前管理的IP地址,另一个是访客在前台提前评论时,需要获取访客的IP地址。

打开 zb_system/function/c_system_event.php

找到如果下图两处,分别是提交用户资料时获取用户IP地址以及提交评论时获取IP地址的代码

Zblog网站cdn加速后如何获取用户真实IP地址

提交用户资料获取IP地址

Zblog网站cdn加速后如何获取用户真实IP地址

提交评论获取IP地址

可以比较一下,上面两张图所要获取IP地址方式都是调用的同一个函数 GetGuestIP() ,我们只需要在z-blog中改动这个函数的代码就可以获取z-blog在cdn加速的情况下用户真实的IP地址了。

打开 zb_system/function/c_system_common.php  要用代码编辑器打开,推荐 notepad++

查找代码:

function GetGuestIP()
{
    return GetVars("REMOTE_ADDR", "SERVER");
}

替换代码

function GetGuestIP()
{
   if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
        $arr = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
        return $arr[0];
    }else{
        return $_SERVER['REMOTE_ADDR'];
    }
}

替换后的代码,如下图所示

Zblog网站cdn加速后如何获取用户真实IP地址

匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: