php快速判断ip是否在网段中

假如有IP 1.1.32.1,如何用php快速地判断是否在网段 1.24.0.0/13 中呢?

可以直接用下面的函数:

function netMatch ($CIDR,$IP) {

list ($net, $mask) = explode ('/', $CIDR);

return (ip2long($IP) & ~((1 << (32 - $mask)) - 1)) == ip2long ($net);

}

2011年09月27日