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)); }
/** * 切分好的分片数据装载, 外部切分程序调用 * * @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())); }
private static function access() { $secure = new \Myfox\App\Security(__DIR__ . '/../../etc/secure/agent.ini'); return $secure->priority(Context::userip()); }