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(); } } }
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()); }