示例#1
0
 function detect($name)
 {
     switch ($name) {
         case 'environment':
             if ($this->detect('console')) {
                 return NEnvironment::CONSOLE;
             } else {
                 return NEnvironment::getMode('production') ? NEnvironment::PRODUCTION : NEnvironment::DEVELOPMENT;
             }
         case 'production':
             if (PHP_SAPI === 'cli') {
                 return FALSE;
             } elseif (isset($_SERVER['SERVER_ADDR']) || isset($_SERVER['LOCAL_ADDR'])) {
                 $addrs = array();
                 if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                     $addrs = preg_split('#,\\s*#', $_SERVER['HTTP_X_FORWARDED_FOR']);
                 }
                 if (isset($_SERVER['REMOTE_ADDR'])) {
                     $addrs[] = $_SERVER['REMOTE_ADDR'];
                 }
                 $addrs[] = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR'];
                 foreach ($addrs as $addr) {
                     $oct = explode('.', $addr);
                     if ($addr !== '::1' && (count($oct) !== 4 || $oct[0] !== '10' && $oct[0] !== '127' && ($oct[0] !== '172' || $oct[1] < 16 || $oct[1] > 31) && ($oct[0] !== '169' || $oct[1] !== '254') && ($oct[0] !== '192' || $oct[1] !== '168'))) {
                         return TRUE;
                     }
                 }
                 return FALSE;
             } else {
                 return TRUE;
             }
         case 'console':
             return PHP_SAPI === 'cli';
         default:
             return NULL;
     }
 }
示例#2
0
文件: loader.php 项目: GE3/GE3
 function detect($name)
 {
     switch ($name) {
         case 'environment':
             if ($this->detect('console')) {
                 return NEnvironment::CONSOLE;
             } else {
                 return NEnvironment::getMode('production') ? NEnvironment::PRODUCTION : NEnvironment::DEVELOPMENT;
             }
         case 'production':
             if (PHP_SAPI === 'cli') {
                 return FALSE;
             } elseif (isset($_SERVER['SERVER_ADDR']) || isset($_SERVER['LOCAL_ADDR'])) {
                 $addr = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR'];
                 $oct = explode('.', $addr);
                 return $addr !== '::1' && (count($oct) !== 4 || $oct[0] !== '10' && $oct[0] !== '127' && ($oct[0] !== '172' || $oct[1] < 16 || $oct[1] > 31) && ($oct[0] !== '169' || $oct[1] !== '254') && ($oct[0] !== '192' || $oct[1] !== '168'));
             } else {
                 return TRUE;
             }
         case 'console':
             return PHP_SAPI === 'cli';
         default:
             return NULL;
     }
 }