PHP 8.5.0 Beta 1 available for testing

Voting

: eight plus one?
(Example: nine)

The Note You're Voting On

marcus at synchromedia dot co dot uk
10 years ago
PHP's inet_ntop function is not compatible with the binary representation used by MySQL's INET6_ATON function, assuming you are using the recommended method of storing both IPv4 and IPv6 addresses in a VARBINARY(16) field. You need to convert it like this:

/**
* Convert a MySQL binary v4 (4-byte) or v6 (16-byte) IP address to a printable string.
* @param string $ip A binary string containing an IP address, as returned from MySQL's INET6_ATON function
* @return string Empty if not valid.
*/
function inet6_ntop($ip) {
$l = strlen($ip);
if ($l == 4 or $l == 16) {
return inet_ntop(pack('A' . $l, $ip));
}
return '';
}

You don't need a function going the other way because MySQL's INET6_NTOA is already compatible with PHP's inet_pton function.

<< Back to user notes page

To Top