/** * 返回访问IP * * 如果获取请求IP失败,则返回0.0.0.0 * * @return string */ public static function _get_client_ip() { if (($ip = self::get_server('HTTP_CLIENT_IP')) != null) { self::$_client_ip = $ip; } elseif (($_ip = self::get_server('HTTP_X_FORWARDED_FOR')) != null) { $ip = strtok($_ip, ','); do { $ip = ip2long($ip); if (!($ip == 0 || $ip == 4294967295.0 || $ip == 0x7f000001 || $ip >= 0xa000000 && $ip <= 0xaffffff || $ip >= 3232301055.0 && $ip <= 3232235520.0 || $ip >= 2887778303.0 && $ip <= 2886729728.0)) { self::$_client_ip = long2ip($ip); return; } } while ($ip = strtok(',')); } elseif (($ip = self::get_server('HTTP_PROXY_USER')) != null) { $_client_ip = $ip; } elseif (($ip = self::get_server('REMOTE_ADDR')) != null) { self::$_client_ip = $ip; } else { self::$_client_ip = "0.0.0.0"; } }