2013-08-18 100 views
0

有没有办法从Ipv6 CIDR获取IPv6地址数?从PHP Ipv6 CIDR获取IPv6地址数

例如:CIDR:2403:3E00 ::/32 => 需要得到IPv6地址的个数:79228162514264337593543950336

+0

是否可以添加该页面上的功能(PHP5从cidr前缀计算IPv6范围) - http://stackoverflow.com/questions/10085266/php5-calculate-ipv6-range-from-cidr-prefix/10086404#10086404 它在CIDR IP地址的额外收益数 前缀:... 第一:... 最后:.. 和 NumberIP:......? – user2253402

回答

0

IPv6地址具有128个比特,这(略微简化的)的数目是专用到网络地址,其余专用于主机地址。

在你的情况下,32位专用于网络部分(/32),所以其他96专用于主机地址。

2^(128-32) = 2^96 = 79228162514264337593543950336 hosts 
+0

为了保持精确性,您可以使用bcpow作为此echo'bcpow(2,128-32),“\ n”;' – Orangepill

0
2^(128-32) = 2^96 = 79228162514264337593543950336 

是错误的,你仍然需要

79228162514264337593543950336 - 1 = 79228162514264337593543950335 hosts 

PS。对不起,我不能评论它的名誉答案约乔姆,这就是为什么我没有多大兴趣在stackoverflow。