对于可以接受字符串或带符号整数输入的 32 位安全 long2ip,请尝试
function safelong2ip($long) {
$binStr = sprintf("%032s", decbin((float)$long));
if (strlen($binStr) != 32) {
throw new Exception("无效的 IPv4 子网!");
}
$ipArr = [];
for ($i = 0; $i < 4; ++$i) {
$ipArr[] = bindec(substr($binStr, $i*8, 8));
}
return implode('.', $ipArr);
}