如何计算IP地址范围?

时间:2013-09-30 10:06:32

标签: php ip

我想使用PHP计算特定IP和子网的IP范围,我的意思是我想计算主机地址范围,例如:

IP: 91.99.98.243
Subnet: 255.255.255.240

然后:

Host Address Range: 91.99.98.241 - 91.99.98.254

如何使用ip2long()计算此范围?

1 个答案:

答案 0 :(得分:2)

如果您只想获取地址范围,可以在long地址上使用bitwise operators

$ip     = ip2long('91.99.98.243');
$mask   = ip2long('255.255.255.240');
echo 'Host Address Range: ', long2ip($ip & $mask), ' - ', long2ip($ip | ~$mask);

如果您想循环播放每个地址,请参阅Joran Den Houting提到的calculate IP range using PHP and CIDR