10000 [HttpFoundation] Support 0 bit netmask in IPv6 () · symfony/symfony@9f1c9bd · GitHub
[go: up one dir, main page]

Skip to content

Commit 9f1c9bd

Browse files
Stéphan Kochenfabpot
Stéphan Kochen
authored andcommitted
[HttpFoundation] Support 0 bit netmask in IPv6 ()
1 parent 2c3344b commit 9f1c9bd

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

src/Symfony/Component/HttpFoundation/IpUtils.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ public static function checkIp6($requestIp, $ip)
123123
if (false !== strpos($ip, '/')) {
124124
list($address, $netmask) = explode('/', $ip, 2);
125125

126+
if ('0' === $netmask) {
127+
return (bool) unpack('n*', @inet_pton($address));
128+
}
129+
126130
if ($netmask < 1 || $netmask > 128) {
127131
return self::$checkedIps[$cacheKey] = false;
128132
}

src/Symfony/Component/HttpFoundation/Tests/IpUtilsTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ public function getIpv6Data()
6262
array(false, '2a01:198:603:0:396e:4789:8e99:890f', '::1'),
6363
array(true, '0:0:0:0:0:0:0:1', '::1'),
6464
array(false, '0:0:603:0:396e:4789:8e99:0001', '::1'),
65+
array(true, '0:0:603:0:396e:4789:8e99:0001', '::/0'),
66+
array(true, '0:0:603:0:396e:4789:8e99:0001', '2a01:198:603:0::/0'),
6567
array(true, '2a01:198:603:0:396e:4789:8e99:890f', array('::1', '2a01:198:603:0::/65')),
6668
array(true, '2a01:198:603:0:396e:4789:8e99:890f', array('2a01:198:603:0::/65', '::1')),
6769
array(false, '2a01:198:603:0:396e:4789:8e99:890f', array('::1', '1a01:198:603:0::/65')),

0 commit comments

Comments
 (0)
0