function get_remote_addr() { if (getenv('HTTP_CLIENT_IP')) { // 代理端的(有可能存在,可伪造) return getenv('HTTP_CLIENT_IP'); } else if (getenv('HTTP_VIA')) { // 用户是在哪个IP使用的代理(有可能存在,也可以伪造) $ips = explode(',' ,getenv('HTTP_X_FORWARDED_FOR')); for ($i = 0; $i < count($ips); $i++) { if (!eregi ("^(10|172.16|192.168).", $ips[$i])) { return trim($ips[$i]); } } } // 访问端(有可能是用户,有可能是代理的)IP return $_SERVER['REMOTE_ADDR']; }