Как я могу уменьшить IPv6-адрес? - PullRequest
0 голосов
/ 23 октября 2018

Кажется, что было бы просто уменьшить 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 );
}

Любая помощь очень ценится:)

...