示例#1
0
 public function __construct(Request $request, Cubex $cubex)
 {
     $this->setCubex($cubex);
     $this->_request = $request;
     $this->_ip = $this->_request->getClientIp();
     try {
         $this->_config = $cubex->getConfiguration()->getSection('http_visitor');
     } catch (\Exception $e) {
         $this->_config = new ConfigSection('http_visitor', []);
     }
     $this->configure($this->_config);
     if (System::isAppEngine($request->server->get('SERVER_SOFTWARE'))) {
         $this->_fromAppEngine();
     } else {
         if ($request->server->get('GEOIP_ADDR', null) !== null) {
             $this->_fromModGeoIP();
         }
     }
 }
示例#2
0
 public function testXForwardedFor()
 {
     //http://en.wikipedia.org/wiki/X-Forwarded-For#Format
     $request = new Request();
     //8.8.8.8 = client IP
     //4.4.4.4 = proxy1
     $server = ['HTTP_X_FORWARDED_FOR' => '8.8.8.8, 4.4.4.4', 'REMOTE_ADDR' => '8.8.4.4'];
     $request->initialize([], [], [], [], [], $server);
     $request->setTrustedProxies(['8.8.4.4']);
     $this->assertEquals('8.8.8.8', $request->getClientIp());
 }