diff --git a/libraries/classes/Plugins/Transformations/Output/Text_Plain_Binarytoip.php b/libraries/classes/Plugins/Transformations/Output/Text_Plain_Binarytoip.php index 80e7348840..5422d24536 100644 --- a/libraries/classes/Plugins/Transformations/Output/Text_Plain_Binarytoip.php +++ b/libraries/classes/Plugins/Transformations/Output/Text_Plain_Binarytoip.php @@ -9,6 +9,7 @@ namespace PhpMyAdmin\Plugins\Transformations\Output; use PhpMyAdmin\Plugins\TransformationsPlugin; +use function hex2bin; /** * Handles the binary to IPv4/IPv6 transformation for text plain @@ -45,15 +46,18 @@ class Text_Plain_Binarytoip extends TransformationsPlugin */ public function applyTransformation($buffer, array $options = array(), $meta = '') { - $length = strlen($buffer); - if ($length == 4 || $length == 16) { - $val = @inet_ntop(pack('A' . $length, $buffer)); - if ($val !== false) { - return $val; - } + if (0 !== strpos($buffer, '0x')) { + return $buffer; } - return $buffer; + $ipHex = substr($buffer, 2); + $ipBin = hex2bin($ipHex); + + if (false === $ipBin) { + return $buffer; + } + + return @inet_ntop($ipBin); }