Esempio n. 1
0
 /**
  * 返回访问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";
     }
 }