Bug XF\Util\Ip::binaryToString breaks IPv6 addresses that contain a double colon

There is a bug in this version
S

Steffen

Guest
How to reproduce:
PHP:

var_dump(\XF\Util\Ip::binaryToString("*\x02\x124\x124\0\0\0\0\0\0\0\0\0\0", $shorten = false));

What should be returned:
string(39) "2a02:1234:1234:0000:0000:0000:0000:0000"

What is actually returned:
string(24) "2a02:1234:1234:0000:0000"

This is an invalid IPv6 address.

Possible fix (found at Quick way of expanding IPv6 Addresses with PHP):
Diff:

Code:
--- a/src/XF/Util/Ip.php
+++ b/src/XF/Util/Ip.php
@@ -37,13 +37,8 @@ class Ip
 
        if (strlen($ip)...

Read more

Continue reading...