解决sspanel使用cdn后无法获取真实ip

2017年10月20日星期五

解决sspanel使用cdn后无法获取真实ip



先说哈,这些方法都是问大佬问到的方法,如果说有其他的方法,那么请告诉我吧~

方法一:


一直以来有个烦恼就是使用了cdn后sspanel的后台ip统计就不准确了,无论谁登录都会记录cdn的ip,而不是访客的真实ip,原因其实很简单,因为我们通过了cdn这个代理来访问的网站,但其实cdn在请求网站数据时,会通过HTTP_X_FORWARDED_FOR附加真实访客的地址,我们只需要解析这个函数的内容就可以了,具体操作如下。

在sspanel目录下找到/app/Controllers/AuthController.php这个文件,并用vim打开,在所有的$loginip->ip=$_SERVER["REMOTE_ADDR"];前均添加下述语句即可。
if(isset($_SERVER[‘HTTP_X_FORWARDED_FOR’]))
{
$list = explode(‘,’,$_SERVER[‘HTTP_X_FORWARDED_FOR’]);
$_SERVER[‘REMOTE_ADDR’] = $list[0];
}

[v_error]此处的标点符号请注意,将所有中文模式下的标点改为英文的标点[/v_error]
解决后效果如图



[v_notice]方法来源:DoubleDou[/v_notice]

方法二:


在sspanel的配置文件中加入
if (isset($_SERVER['HTTP_CF_CONNECTING_IP']))
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];

[v_notice]方法来源:魔改的世界[/v_notice]

某些魔改版自带的


在ssp的配置文件里面,最下面添加

#在套了CDN之后获取用户真实ip,如果您不知道这是什么,请不要乱动

if ( isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ) {

$list = explode("," , $_SERVER["HTTP_X_FORWARDED_FOR"]);

$_SERVER["REMOTE_ADDR"] = $list[0];

}



如果你有其他的方法,那可以告诉我哟~

8 条评论 :

  1. 不止一次的来,不止一次的去,来来去去,这就是这个博客的魅力!

    回复删除
  2. 我也不知道怎么说,我试过了,成功的

    回复删除
  3. CF的CND就是麻烦,还要把域名解析过去

    回复删除
  4. 我现在就在使用这个方法

    回复删除
  5. 我是一只大都比2017年11月5日 02:22

    这个并不是说只有ssp才能用的吧?

    回复删除
  6. 肯定不是啊,所有的用CF的CDN都可以用这个方法获取到真实的用户IP

    回复删除
  7. 弱弱的请问一下如果开了cdn,支付宝回调不成功改怎么设置呀

    回复删除
  8. 这个。。。。不清楚,因为我没有使用支付宝。。。也许你需要问一下支付宝大佬们怎么操作

    回复删除