EMLOG解决使用CDN加速后无法获取真实IP的方法

2019-9-24 / 0 评论 / 844 阅读
温馨提示:本文最后更新于2019-9-24,已超过半年没有更新,若内容或图片失效,请留言反馈。

为了让自己的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地址

评论一下?

OωO
取消