Fix getting subnet of ipv4 mapped ipv6 addresses

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
This commit is contained in:
Vincent Petry 2021-11-22 14:01:41 +01:00
parent 68fecc1d9f
commit 7e08a4ab15
No known key found for this signature in database
GPG key ID: E055D6A4D513575C
2 changed files with 6 additions and 0 deletions

View file

@ -103,6 +103,8 @@ class IpAddress {
$this->ip,
32
);
} elseif (substr(strtolower($this->ip), 0, 7) === '::ffff:') {
return '::ffff:' . $this->getIPv4Subnet(substr($this->ip, 7), 32);
}
return $this->getIPv6Subnet(
$this->ip,

View file

@ -38,6 +38,10 @@ class IpAddressTest extends TestCase {
'192.168.0.123',
'192.168.0.123/32',
],
[
'::ffff:192.168.0.123',
'::ffff:192.168.0.123/32',
],
[
'2001:0db8:85a3:0000:0000:8a2e:0370:7334',
'2001:db8:85a3::/64',