前几天发过一篇关于PHP获取网站使用cdn后的用户真实的IP地址的方法,然后就有群里的小伙件单独来问,如果使用z-blog建站并使用cdn加速的话是如何获取用户的真实IP地址呢?那么今天就交大家一个简单的方法。
z-blog cdn加速后获取用户真实IP地址的方法
z-blog需要获取用户IP地址的地方大概有两处,一个后台建立新用户时需要获取当前管理的IP地址,另一个是访客在前台提前评论时,需要获取访客的IP地址。
打开 zb_system/function/c_system_event.php
找到如果下图两处,分别是提交用户资料时获取用户IP地址以及提交评论时获取IP地址的代码
提交用户资料获取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'];
}}
替换后的代码,如下图所示
小编用话说:
1、z-blog默认后台是无法显示评论的IP地址的,你可以使用一些相关的评论插件来查看评论的IP地址
2、z-blog默认后台的用户管理也无法查看用户的注册地址,你也可以使用用户中心一类的插件来查看
3、如果你不想修改代码,可以下载插件来实现此功能。