SimplePie_Net_IPv6::uncompress() public WP 1.0
Uncompresses an IPv6 address
RFC 4291 allows you to compress concecutive zero pieces in an address to '::'. This method expects a valid IPv6 address and expands the '::' to the required number of zero pieces.
- Example: FF01::101 -> FF01:0:0:0:0:0:0:101
- :1 -> 0:0:0:0:0:0:0:1
{} Это метод класса: SimplePie_Net_IPv6{}
Хуков нет.
Возвращает
Строку
. The uncompressed IPv6 address
Использование
$result = SimplePie_Net_IPv6::uncompress( $ip );
- $ip(строка) (обязательный)
- An IPv6 address
Код SimplePie_Net_IPv6::uncompress() SimplePie Net IPv6::uncompress WP 5.7.1
public static function uncompress($ip)
{
$c1 = -1;
$c2 = -1;
if (substr_count($ip, '::') === 1)
{
list($ip1, $ip2) = explode('::', $ip);
if ($ip1 === '')
{
$c1 = -1;
}
else
{
$c1 = substr_count($ip1, ':');
}
if ($ip2 === '')
{
$c2 = -1;
}
else
{
$c2 = substr_count($ip2, ':');
}
if (strpos($ip2, '.') !== false)
{
$c2++;
}
// ::
if ($c1 === -1 && $c2 === -1)
{
$ip = '0:0:0:0:0:0:0:0';
}
// ::xxx
else if ($c1 === -1)
{
$fill = str_repeat('0:', 7 - $c2);
$ip = str_replace('::', $fill, $ip);
}
// xxx::
else if ($c2 === -1)
{
$fill = str_repeat(':0', 7 - $c1);
$ip = str_replace('::', $fill, $ip);
}
// xxx::xxx
else
{
$fill = ':' . str_repeat('0:', 6 - $c2 - $c1);
$ip = str_replace('::', $fill, $ip);
}
}
return $ip;
}