本文整理汇总了PHP中IPAddress::asReadable方法的典型用法代码示例。如果您正苦于以下问题:PHP IPAddress::asReadable方法的具体用法?PHP IPAddress::asReadable怎么用?PHP IPAddress::asReadable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPAddress
的用法示例。
在下文中一共展示了IPAddress::asReadable方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sameSubnet
/**
* Is this IP in the same subnet as the supplied address?
*
* Accepts net masks for both IPV4 and IPV6 and will select the appropriate one, to
* allow checking policy against request input with minimal method calls.
*
* @param string $matchIp presentation form ip address to compare
* @param int $netMask4 network mask, bits to match <= 32 for IPV4
* @param int $netMask6 network mask, bits to match <=128 for IPV6
*
* @return bool true if $this->ip and $matchIp are both in the specified subnet
*/
public function sameSubnet($matchIp, $netMask4, $netMask6)
{
$match = new IPAddress($matchIp);
if (false === $this->ipVersion() || $this->ipVersion() !== $match->ipVersion()) {
return false;
}
switch ($this->ipVersion()) {
case 4:
$mask = -1 << 32 - $netMask4;
return (ip2long($this->ip) & $mask) === (ip2long($match->asReadable()) & $mask);
break;
case 6:
$ipBits = $this->asBinaryString($this);
$matchBits = $this->asBinaryString($match);
$match = 0 === strncmp($ipBits, $matchBits, $netMask6);
return $match;
break;
}
return false;
}