Matching an IP to a CIDR mask in PHP 5?

前端 未结 13 1127
无人共我
无人共我 2020-11-28 04:04

I\'m looking for quick/simple method for matching a given IP4 dotted quad IP to a CIDR notation mask.

I have a bunch of IPs I need to see if they match a range of IP

13条回答
  •  时光说笑
    2020-11-28 04:34

    Some function changed:

    • split with explode

    function cidr_match($ip, $range)
    {
        list ($subnet, $bits) = explode('/', $range);
        $ip = ip2long($ip);
        $subnet = ip2long($subnet);
        $mask = -1 << (32 - $bits);
        $subnet &= $mask; 
        return ($ip & $mask) == $subnet;
    }
    

提交回复
热议问题