public function test_should_get_correct_userip()
 {
     $_SERVER = array();
     $this->assertEquals('unknown', Context::userip());
     $this->assertEquals(0, Context::userip(true));
     $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
     $this->assertEquals('unknown', Context::userip());
     $this->assertEquals(0, Context::userip(true));
     Context::cleanAllContext();
     $this->assertEquals('127.0.0.1', Context::userip());
     $this->assertEquals(ip2long('127.0.0.1'), Context::userip(true));
     $_SERVER['HTTP_X_FORWARDED_FOR'] = '202.111.111.123,59.66.192.112';
     Context::cleanAllContext();
     $this->assertEquals('59.66.192.112', Context::userip());
     $this->assertEquals(ip2long('59.66.192.112'), Context::userip(true));
 }
Пример #2
0
 /**
  * 切分好的分片数据装载, 外部切分程序调用
  *
  * @access protected
  * @return void
  */
 protected function actionQueque($gets, $data)
 {
     if (false === ($priority = self::priority())) {
         self::output(1100, 'Access Denied.');
         return false;
     }
     $table = self::vars('table', $data, $gets);
     if (empty($table)) {
         self::output(1200, 'Param "table" is required.');
         return false;
     }
     foreach (array('file', 'route', 'bucket', 'hosts') as $key) {
         if (empty($data[$key])) {
             self::output(1201, sprintf('Param "%s" is required in post data.', $key));
             return false;
         }
     }
     $info = array('table' => $table, 'route' => $data['route'], 'file' => $data['file'], 'bucket' => $data['bucket'], 'hosts' => $data['hosts']);
     $ipaddr = Context::userip();
     $agent = isset($param['agent']) ? (int) $param['agent'] : ip2long($ipaddr);
     $option = array('priority' => $priority, 'trytimes' => 3, 'task_flag' => \Myfox\App\Queque::FLAG_WAIT, 'adduser' => sprintf('web:%s', $ipaddr));
     $queque = \Myfox\App\Queque::instance();
     if (!$queque->insert('import', $info, $agent, $option)) {
         self::output(1300, sprintf('Inner Error (%s).', $queque->lastError()));
         return false;
     }
     self::output(0, 'OK', array('id' => $queque->lastId()));
 }
Пример #3
0
 private static function access()
 {
     $secure = new \Myfox\App\Security(__DIR__ . '/../../etc/secure/agent.ini');
     return $secure->priority(Context::userip());
 }