Class yii\helpers\BaseIpHelper

继承yii\helpers\BaseIpHelper
子类yii\helpers\IpHelper
可用自版本2.0.14
源代码 https://github.com/yiisoft/yii2/blob/master/framework/helpers/BaseIpHelper.php

BaseIpHelper 为 yii\helpers\IpHelper 提供了具体的实现方法.

不要使用 BaseIpHelper. 改用 yii\helpers\IpHelper.

公共方法

隐藏继承的方法

方法描述定义在
expandIPv6() 将 IPv6 地址扩展为完整的形式. yii\helpers\BaseIpHelper
getIpVersion() 获取 IP 的版本. yii\helpers\BaseIpHelper
inRange() 检查$subnet是否包含 IP 地址或子网$subnet. yii\helpers\BaseIpHelper
ip2bin() 将 IP 地址转换为位bits形式来表示. yii\helpers\BaseIpHelper

常量

隐藏继承的常量

常量描述定义在
IPV4 4 yii\helpers\BaseIpHelper
IPV4_ADDRESS_LENGTH 32 IPv4 地址的长度(以位bits为单位). yii\helpers\BaseIpHelper
IPV6 6 yii\helpers\BaseIpHelper
IPV6_ADDRESS_LENGTH 128 IPv6 地址的长度(以位bits为单位). yii\helpers\BaseIpHelper

方法详情

expandIPv6() public static 方法

将 IPv6 地址扩展为完整的形式.

例如: 2001:db8::1将扩展为2001:0db8:0000:0000:0000:0000:0000:0001.

public static string expandIPv6 ( $ip )
$ip string

原始有效的 IPv6 地址.

return string

扩展后的 IPv6 地址.

getIpVersion() public static 方法

获取 IP 的版本.

不执行 IP 地址验证.

public static integer getIpVersion ( $ip )
$ip string

有效的 IPv4 或 IPv6 地址.

return integer

IPV4IPV6.

inRange() public static 方法

检查$subnet是否包含 IP 地址或子网$subnet.

例如, 下面的代码检查子网192.168.1.0/24是否在子网192.168.0.0/22中:

IpHelper::inRange('192.168.1.0/24', '192.168.0.0/22'); // true

如果你需要检查单个 IP 地址192.168.1.21是否在子网192.168.1.0/24中, 则可以使用以下任一示例:

IpHelper::inRange('192.168.1.21', '192.168.1.0/24'); // true
IpHelper::inRange('192.168.1.21/32', '192.168.1.0/24'); // true

参见 https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing.

public static boolean inRange ( $subnet, $range )
$subnet string

有效的 IPv4 或 IPv6 地址或 CIDR 范围. eg. 10.0.0.0/82001:af::/64.

$range string

有效的 IPv4 或 IPv6 CIDR 范围. eg. 10.0.0.0/82001:af::/64.

return boolean

$subnet 是否包含 $range.

throws yii\base\NotSupportedException
ip2bin() public static 方法

将 IP 地址转换为位bits形式来表示.

public static string ip2bin ( $ip )
$ip string

有效的 IPv4 或 IPv6 地址.

return string

bits用字符串来表示.

throws yii\base\NotSupportedException