Open Monograph Press  3.3.0
IpUtilsTest.php
1 <?php
2 
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11 
13 
14 use PHPUnit\Framework\TestCase;
16 
17 class IpUtilsTest extends TestCase
18 {
22  public function testIpv4($matches, $remoteAddr, $cidr)
23  {
24  $this->assertSame($matches, IpUtils::checkIp($remoteAddr, $cidr));
25  }
26 
27  public function getIpv4Data()
28  {
29  return array(
30  array(true, '192.168.1.1', '192.168.1.1'),
31  array(true, '192.168.1.1', '192.168.1.1/1'),
32  array(true, '192.168.1.1', '192.168.1.0/24'),
33  array(false, '192.168.1.1', '1.2.3.4/1'),
34  array(false, '192.168.1.1', '192.168.1.1/33'), // invalid subnet
35  array(true, '192.168.1.1', array('1.2.3.4/1', '192.168.1.0/24')),
36  array(true, '192.168.1.1', array('192.168.1.0/24', '1.2.3.4/1')),
37  array(false, '192.168.1.1', array('1.2.3.4/1', '4.3.2.1/1')),
38  array(true, '1.2.3.4', '0.0.0.0/0'),
39  array(true, '1.2.3.4', '192.168.1.0/0'),
40  array(false, '1.2.3.4', '256.256.256/0'), // invalid CIDR notation
41  array(false, 'an_invalid_ip', '192.168.1.0/24'),
42  );
43  }
44 
48  public function testIpv6($matches, $remoteAddr, $cidr)
49  {
50  if (!defined('AF_INET6')) {
51  $this->markTestSkipped('Only works when PHP is compiled without the option "disable-ipv6".');
52  }
53 
54  $this->assertSame($matches, IpUtils::checkIp($remoteAddr, $cidr));
55  }
56 
57  public function getIpv6Data()
58  {
59  return array(
60  array(true, '2a01:198:603:0:396e:4789:8e99:890f', '2a01:198:603:0::/65'),
61  array(false, '2a00:198:603:0:396e:4789:8e99:890f', '2a01:198:603:0::/65'),
62  array(false, '2a01:198:603:0:396e:4789:8e99:890f', '::1'),
63  array(true, '0:0:0:0:0:0:0:1', '::1'),
64  array(false, '0:0:603:0:396e:4789:8e99:0001', '::1'),
65  array(true, '2a01:198:603:0:396e:4789:8e99:890f', array('::1', '2a01:198:603:0::/65')),
66  array(true, '2a01:198:603:0:396e:4789:8e99:890f', array('2a01:198:603:0::/65', '::1')),
67  array(false, '2a01:198:603:0:396e:4789:8e99:890f', array('::1', '1a01:198:603:0::/65')),
68  array(false, '}__test|O:21:&quot;JDatabaseDriverMysqli&quot;:3:{s:2', '::1'),
69  array(false, '2a01:198:603:0:396e:4789:8e99:890f', 'unknown'),
70  );
71  }
72 
78  {
79  if (defined('AF_INET6')) {
80  $this->markTestSkipped('Only works when PHP is compiled with the option "disable-ipv6".');
81  }
82 
83  IpUtils::checkIp('2a01:198:603:0:396e:4789:8e99:890f', '2a01:198:603:0::/65');
84  }
85 }
Symfony\Component\HttpFoundation\IpUtils
Definition: lib/vendor/symfony/http-foundation/IpUtils.php:19
Symfony\Component\HttpFoundation\Tests\IpUtilsTest\getIpv4Data
getIpv4Data()
Definition: IpUtilsTest.php:27
Symfony\Component\HttpFoundation\IpUtils\checkIp
static checkIp($requestIp, $ips)
Definition: lib/vendor/symfony/http-foundation/IpUtils.php:38
Symfony\Component\HttpFoundation\Tests\IpUtilsTest\testAnIpv6WithOptionDisabledIpv6
testAnIpv6WithOptionDisabledIpv6()
Definition: IpUtilsTest.php:77
Symfony\Component\HttpFoundation\Tests\IpUtilsTest\getIpv6Data
getIpv6Data()
Definition: IpUtilsTest.php:57
Symfony\Component\HttpFoundation\Tests\IpUtilsTest\testIpv4
testIpv4($matches, $remoteAddr, $cidr)
Definition: IpUtilsTest.php:22
Symfony\Component\HttpFoundation\Tests\IpUtilsTest\testIpv6
testIpv6($matches, $remoteAddr, $cidr)
Definition: IpUtilsTest.php:48
Symfony\Component\HttpFoundation\Tests\IpUtilsTest
Definition: IpUtilsTest.php:17
Symfony\Component\HttpFoundation\Tests
Definition: AcceptHeaderItemTest.php:12