重症肌无力病友之家电脑乐园 → 帝国cms无法正确获得ip地址的修改方法

发表一个新主题 回复帖子您是本帖第 1594 个阅读者  浏览上一篇主题 刷新本主题 浏览下一篇主题
 主题帝国cms无法正确获得ip地址的修改方法 适合打印机打印的版本  通过电子邮件发送此页面  添加加到IE收藏夹  报告本帖 
海蓝港湾
 


门派:全身派

经验值:681012

社区币:12847

发贴数:5978

注册:2005-01-12

体力值:3450

状态:离线

查看海蓝港湾的个人资料 发送短讯息给海蓝港湾 把海蓝港湾加入好友 搜索海蓝港湾发表过的所有主题 搜索海蓝港湾回复过的所有主题 发送电邮给海蓝港湾 访问海蓝港湾的主页 复制这个帖子 引用回复这个帖子 断章取义 回复这个帖子 No.1 

帝国cms中,在iis下,无法正确获得用户的ip地址的修改方法:

1. 打开文件e/class/connect.php里的egetip函数

2.修改为:


function egetip(){
        if(getenv('HTTP_CLIENT_IP')&&strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown'))
        {
                $ip=getenv('HTTP_CLIENT_IP');
        }
        elseif(getenv('HTTP_X_FORWARDED_FOR')&&strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknown'))
        {
                $ip=getenv('HTTP_X_FORWARDED_FOR');
        }
        elseif(getenv('REMOTE_ADDR')&&strcasecmp(getenv('REMOTE_ADDR'),'unknown'))
        {
                $ip=getenv('REMOTE_ADDR');
        }
//  此处新增
        elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])&&$_SERVER['HTTP_X_FORWARDED_FOR']&&strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'],'unknown'))
        {
                $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];  
        }  
//新增结束
        elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],'unknown'))
        {
                $ip=$_SERVER['REMOTE_ADDR'];  
        }  
        $ip=RepPostVar(preg_replace("/^([\d\.]+).*/","\\1",$ip));
        return $ip;  
}
========================
演示地址: www.zhongyf.com  看评论里的ip地址。

根本原因是:php的系统函数getenv在iis下不能起作用。 

——————————

转播到腾讯微博 发表时间:2014-09-02 11:14:19  IP:已记录
本主题共有 1 页 [ 1 ] 收藏帖子 | 取消收藏 | 返回页首 

Powered by BBSxp /Licence © 1998-2005
Script Execution Time:0ms
晋ICP备07500169号-1