首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在PHP 5中将IP与CIDR掩码匹配?

在 PHP 5 中,要将 IP 地址与 CIDR 掩码匹配,可以使用以下方法:

  1. 使用 ip2long() 函数将 IP 地址转换为长整型表示。
  2. 使用位运算符将 IP 地址与 CIDR 掩码进行匹配。

以下是一个示例代码:

代码语言:php
复制
function cidr_match($ip, $cidr) {
    list($subnet, $mask) = explode('/', $cidr);

    $ip_long = ip2long($ip);
    $subnet_long = ip2long($subnet);
    $mask = ~((1 << (32 - $mask)) - 1);

    return ($ip_long & $mask) == ($subnet_long & $mask);
}

$ip = '192.168.1.1';
$cidr = '192.168.0.0/16';

if (cidr_match($ip, $cidr)) {
    echo "IP 地址与 CIDR 掩码匹配";
} else {
    echo "IP 地址与 CIDR 掩码不匹配";
}

在这个示例中,我们定义了一个名为 cidr_match 的函数,该函数接受 IP 地址和 CIDR 掩码作为参数。我们首先将 IP 地址和子网络地址转换为长整型表示,然后使用位运算符将 IP 地址与 CIDR 掩码进行匹配。如果匹配成功,则返回 true,否则返回 false

在这个示例中,我们使用了 ip2long() 函数将 IP 地址和子网络地址转换为长整型表示。我们还使用了位运算符 ~<< 来计算 CIDR 掩码的反码。最后,我们使用 == 运算符来比较 IP 地址和子网络地址的掩码部分是否相等。

这个示例中使用的 CIDR 掩码是 192.168.0.0/16,这意味着它将匹配 192.168.0.0192.168.255.255 范围内的所有 IP 地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券