给楼主摘录一个帝国CMS获取IP的函数- //取得IPfunction egetip() { global $ecms_config; 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'); $ips = explode(',', $ip); $ip = trim($ips[0]); // 取第一个 IP(客户端真实 IP) } elseif (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { $ip = getenv('REMOTE_ADDR'); } else { return ''; } if ($ecms_config['sets']['getiptype'] > 0) { $ip = egetipadd(); } if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6)) { return ''; } return RepPostVar($ip);}//取得IP附加function egetipadd(){ global $ecms_config; if($ecms_config['sets']['getiptype']==2) { $ip=getenv('HTTP_X_FORWARDED_FOR'); } elseif($ecms_config['sets']['getiptype']==3) { $ip=getenv('HTTP_CLIENT_IP'); } else { $ip=getenv('REMOTE_ADDR'); } return $ip;}
复制代码 |