/** * @return IP * @throws NoRemoteIPException */ public function createRemoteIP() { if ($this->cloudflareDetector->isCloudflareRequest()) { return new IP($this->cloudflareDetector->getConnectingRequestIp()); } else { return $this->fallback->createRemoteIP(); } }
public function testIsCloudflareRequestIntegrationTest() { $ipAddresses = new CloudflareIpAddresses(); $ipAddressWithMask = reset($ipAddresses->getIpV4Addresses()); $ipAddress = substr($ipAddressWithMask, 0, strpos($ipAddressWithMask, '/')); $server = ['HTTP_CF_CONNECTING_IP' => '22.33.44.55', 'REMOTE_ADDR' => $ipAddress, 'HTTP_CF_IPCOUNTRY' => 'US']; $cloudflareDetector = new CloudflareDetector($ipAddresses, new SuperglobalRequestAdapter($server)); $this->assertTrue($cloudflareDetector->isCloudflareRequest()); $this->assertEquals('22.33.44.55', $cloudflareDetector->getConnectingRequestIp()); $this->assertEquals('US', $cloudflareDetector->getConnectingCountryCode()); }