PHP查找网络段来启动和结束IP地址的方法

PHP查找网络段来启动和结束IP地址的方法
本文介绍了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程序设计有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部