本文整理汇总了PHP中IP::toUnsigned6方法的典型用法代码示例。如果您正苦于以下问题:PHP IP::toUnsigned6方法的具体用法?PHP IP::toUnsigned6怎么用?PHP IP::toUnsigned6使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IP
的用法示例。
在下文中一共展示了IP::toUnsigned6方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: normaliseRange
/**
* Gets rid of uneeded numbers in quad-dotted/octet IP strings
* For example, 127.111.113.151/24 -> 127.111.113.0/24
*/
static function normaliseRange($range)
{
$parts = explode('/', $range);
if (count($parts) == 2) {
// IPv6
if (IP::isIPv6($range) && $parts[1] >= 64 && $parts[1] <= 128) {
$bits = $parts[1];
$ipint = IP::toUnsigned6($parts[0]);
# Native 32 bit functions WONT work here!!!
# Convert to a padded binary number
$network = wfBaseConvert($ipint, 10, 2, 128);
# Truncate the last (128-$bits) bits and replace them with zeros
$network = str_pad(substr($network, 0, $bits), 128, 0, STR_PAD_RIGHT);
# Convert back to an integer
$network = wfBaseConvert($network, 2, 10);
# Reform octet address
$newip = IP::toOctet($network);
$range = "{$newip}/{$parts[1]}";
} else {
if (IP::isIPv4($range) && $parts[1] >= 16 && $parts[1] <= 32) {
$shift = 32 - $parts[1];
$ipint = IP::toUnsigned($parts[0]);
$ipint = $ipint >> $shift << $shift;
$newip = long2ip($ipint);
$range = "{$newip}/{$parts[1]}";
}
}
}
return $range;
}