Exemplo n.º 1
0
 /**
  * Get IP
  *
  * @access	public
  * @return	string
  */
 public static function getClientIP()
 {
     if (self::$ClientIP !== FALSE) {
         return self::$ClientIP;
     }
     $CieIP = (isset($_SERVER['HTTP_CLIENT_IP']) and $_SERVER['HTTP_CLIENT_IP'] != "") ? $_SERVER['HTTP_CLIENT_IP'] : FALSE;
     $RemIP = (isset($_SERVER['REMOTE_ADDR']) and $_SERVER['REMOTE_ADDR'] != "") ? $_SERVER['REMOTE_ADDR'] : FALSE;
     $ForIP = (isset($_SERVER['HTTP_X_FORWARDED_FOR']) and $_SERVER['HTTP_X_FORWARDED_FOR'] != "") ? $_SERVER['HTTP_X_FORWARDED_FOR'] : FALSE;
     if ($CieIP && $RemIP) {
         self::$ClientIP = $CieIP;
     } elseif ($RemIP) {
         self::$ClientIP = $RemIP;
     } elseif ($CieIP) {
         self::$ClientIP = $CieIP;
     } elseif ($ForIP) {
         self::$ClientIP = $ForIP;
     }
     if (strstr(self::$ClientIP, ',')) {
         $x = explode(',', self::$ClientIP);
         self::$ClientIP = end($x);
     }
     // checked IP address
     $CheckIP = new IPValidator();
     if (!$CheckIP->isValid(self::$ClientIP)) {
         self::$ClientIP = '0.0.0.0';
     }
     unset($CheckIP);
     unset($CieIP);
     unset($RemIP);
     unset($ForIP);
     return self::$ClientIP;
 }