Кажется, что было бы просто уменьшить IPv6-адрес, чтобы я мог получить предыдущий адрес в серии, но я не могу понять это.
Я нашел пример кода для увеличения адреса IPv6 (на самом деле он работает и для IPv4), но уменьшается?он не работает независимо от того, как я его изменяю, и у меня недостаточно понимания IPv6, чтобы самому по-настоящему его решить.
Вот пример, который я нашел и который работает для приращения:
// Takes an IPv4/IPv6 address in string format, and increments it by given
function incrementIp($ip, $increment)
{
$addr = inet_pton ( $ip );
for ( $i = strlen ( $addr ) - 1; $increment > 0 && $i >= 0; --$i )
{
$val = ord($addr[$i]) + $increment;
$increment = $val / 256;
$addr[$i] = chr($val % 256);
}
return inet_ntop ( $addr );
}
Любая помощь очень ценится:)