public static function long2ip($dec, $ipv6 = false)
{
$ipstr = '';
if ($ipv6) {
if (!function_exists('bcadd')) {
throw new \RuntimeException('BCMATH extension not installed!');
}
$bin = '';
do {
$bin = bcmod($dec, '2') . $bin;
$dec = bcdiv($dec, '2', 0);
} while (bccomp($dec, '0'));
$bin = str_pad($bin, 128, '0', STR_PAD_LEFT);
$ip = array();
for ($bit = 0; $bit <= 7; $bit++) {
$bin_part = substr($bin, $bit * 16, 16);
$ip[] = dechex(bindec($bin_part));
}
$ip = implode(':', $ip);
$ipstr = inet_ntop(inet_pton($ip));
} else {
$ipstr = long2ip($dec);
}
return $ipstr;
}