Esempio n. 1
0
 public static function getIp()
 {
     if (!self::$_Ip) {
         if (!empty($_SERVER['HTTP_CLIENT_IP']) && strcasecmp($_SERVER['HTTP_CLIENT_IP'], 'unknown')) {
             $ip = $_SERVER['HTTP_CLIENT_IP'];
         } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], 'unknown')) {
             $ip = substr($_SERVER['HTTP_X_FORWARDED_FOR'], 0, strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ','));
             if (preg_match("/^(10|172.16|192.168)./", $ip)) {
                 $ip = false;
             }
         }
         if (!$ip && !empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
             $ip = $_SERVER['REMOTE_ADDR'];
         }
         preg_match("/[\\d\\.]{7,15}/", $ip, $onlineipmatches);
         self::$_Ip = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';
         unset($onlineipmatches);
         unset($ip);
     }
     return self::$_Ip;
 }