掩码转换

PHP对IP地址和子网掩码的处理方法

半世苍凉 提交于 2019-12-14 11:51:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ip2long IP地址转换成整型。 long2ip 整型数据转换成IP。 子网掩码转换成掩码长度方式: $slash_notation = strlen(preg_replace("/0/", "", decbin(ip2long($subnet_mask)))); $bits=strpos(decbin(ip2long($mask)),"0"); 子网掩码位长转换成子网掩码形式: $mask = 0xffffffff << (32 - $mask); $mask = pow(2,32)-pow(2,(32-$mask)); 判断两个地址是否在一个子网内: <?php function matchCIDR($addr, $cidr) { list($ip, $mask) = explode('/', $cidr); return (ip2long($addr) >> (32 - $mask) == ip2long($ip) >> (32 - mask)); } ?> 一个IPv4的类: <?php //-------------- // IPv4 class class ipv4 { var $address; var $netbits; //-------------- // Create new