本文
介绍了PHP找到一个
网络段来
启动和结束IP
地址的
方法:
例如,网络段(192168.1.5 / 24),其
子网掩码划分为24:
11111111.11111111.11111111.00000000(255.255.255.0)
描述:IP地址是32位,和24的分段指出有24个前1和8 0。后面。
该算法开始的IP地址是:192.168.1.5的二进制和子网掩码的二进制。
该算法的一端:IP地址子网掩码,然后二进制计数器,192.168.1.5的二进制或
操作 在实际应用中,获取网络地址和广播地址。网络地址+ 1是第一个主机地址,广播地址- 1是最后一个主机地址。
< PHP
功能mask2bin(N)
{
N = intval(N);
如果(合32)
模具(
错误子屏蔽);
返回str_repeat(1
}
功能revbin(美元的)
{
P =阵列(0,1,2);
r =阵列(2,0,1);
返回str_replace(P,R的美元,美元);
}
功能StartIP($str,合上球窝轴承)
{
$ BIP = decbin($str);
BIP = str_pad美元($ BIP,8,0
SIP = bindec美元(美元$ BIP上球窝轴承);
返回$;
}
功能EndIP($str,合上球窝轴承)
{
$ BIP = decbin($str);
BIP = str_pad美元($ BIP,8,0
EIP = bindec美元($ BIP | revbin(合上球窝轴承));
返回$;
}
为IP =阵列('192 ','168'、‘,'5'); / /
设置IP地址,可以从形式获得,这里只有演示
面具= '24美元'; / /设置掩码
合上球窝轴承= mask2bin($面膜); / /二进制子网掩码
掩码=数组();
面膜{ } = substr(美元$上球窝轴承,0, 8); / /子网掩码每8分
面膜{ } = substr(美元$上球窝轴承,8
面膜{ } = substr(美元$上球窝轴承,16
面膜{ } = substr(美元$上球窝轴承,24
回波
面具:
';
($ i = 0;$ i < 4;$ + +)
{
回声bindec($面膜{我});
如果(i美元)!= 3)
;
}
回波
网络地址:
';
($ i = 0;$ i < 4;$ + +)
{
回声StartIP($ IP { $我},{我}面膜美元美元);
如果(i美元)!= 3)
;
}
回波
第一个可用:
';
($ i = 0;$ i < 3;$ + +)
{
回声StartIP($ IP { $我},{我}面膜美元美元);
;
}
ip_4 = StartIP美元($ IP { 3 },$面膜{ 3 });
回声+ ip_4美元;
回波
最后可用:
';
($ i = 0;$ i < 3;$ + +)
{
回声EndIP($ IP { $我},{我}面膜美元美元);
;
}
ip_4 = EndIP美元($ IP { 3 },$面膜{ 3 });
回声ip_4美元;
回波
广播地址:
';
($ i = 0;$ i < 4;$ + +)
{
回声EndIP($ IP { $我},{我}面膜美元美元);
如果(i美元)!= 3)
;
}
>
希望本文能对大家的PHP
程序设计有所帮助。