EMLOG解决使用CDN加速后无法获取真实IP的方法
为了让自己的EMLOG网站速度更快、不受CC攻击和DDOS攻击,很多网站都开启过CDN云加速,但这样做的往往会导致我们无法获取到真实IP,现在就来为大家分享一下EMLOG解决使用CDN加速后无法获取用户真实IP的方法。
一、操作步骤
1、打开内核文件/include/lib/function.base.php文件,大约在第56~65行,找到如下代码
/** * 获取用户ip地址 */ function getIp() { $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; if (!ip2long($ip)) { $ip = ''; } return $ip; }
2、将上面的代码替换为如下代码,保存即可
/** * 获取用户ip地址 */ function getIp() { $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ $list = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $ip = $list[0]; } if (!ip2long($ip)) { $ip = ''; } return $ip; }
二、原理解析
通过PHP进行判断,从而获取到用户真实的IP地址