php求一个网段开始与结束IP地址的方法_PHP
程序员文章站
2022-06-03 20:28:57
...
本文实例讲述了php求一个网段开始与结束IP地址的方法。分享给大家供大家参考。具体如下:
比如:网段(192168.1.5/24),其子网掩码根据24划分为:
11111111.11111111.11111111.00000000(255.255.255.0)
说明:IP地址为32bits,24在划分网段中就表示前面有24个1,后面有8个0.
开始IP地址的算法是:192.168.1.5的二进制与子网掩码的二进制进行“与”运算出来的。
结束IP地址的算法是:子网掩码的二进制先取反,然后和192.168.1.5的二进制进行“或”运算
实际的就应用中,那样得出的是网络地址和广播地址,网络地址+1才是第一个主机地址,广播地址-1为最后一个主机地址。
32) die('error submask'); return str_repeat("1", $n).str_repeat("0",32-$n); } function revBin($s) { $p=array('0','1','2'); $r=array('2','0','1'); return str_replace($p,$r,$s); } function startIp($str,$bSub) { $bIp = decbin($str); $bIp = str_pad($bIp,8,"0",STR_PAD_LEFT); $sIp = bindec($bIp & $bSub); return $sIp; } function endIp($str,$bSub) { $bIp = decbin($str); $bIp = str_pad($bIp,8,"0",STR_PAD_LEFT); $eIp = bindec($bIp | revBin($bSub)); return $eIp; } $ip = array('192','168','1','5');//设定IP地址,可以从表单获取,这里只作演示 $mask = '24'; //设置掩码 $bSub = mask2bin($mask); //将子网掩码转换二进制 $mask = array(); $mask[] = substr($bSub,"0",8); //将子网掩码每8位分一段 $mask[] = substr($bSub,"8",8); $mask[] = substr($bSub,"16",8); $mask[] = substr($bSub,"24",8); echo '
掩码: | '; for ($i=0;$i |
网络地址: | '; for ($i=0;$i |
第一个可用: | '; for ($i=0;$i |
最后可用: | '; for ($i=0;$i |
广播地址: |
';
for ($i=0;$i
希望本文所述对大家的php程序设计有所帮助。 声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。 相关文章 相关视频
专题推荐
|
上一篇: 基于文本的留言簿_PHP教程
下一篇: 怎么隐藏掉Nginx的版本号
推荐阅读
-
php求一个网段开始与结束IP地址的方法
-
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
-
php通过Chianz.com获取IP地址与地区的方法
-
【php】利用新浪api接口与php获取远程数据的方法,获取IP地址,并获取相应的IP归属地
-
php求一个网段开始与结束IP地址的方法,phpip_PHP教程
-
php求一个网段开始与结束IP地址的方法
-
php通过Chianz.com获取IP地址与地区的方法_PHP教程
-
php通过Chianz.com获取IP地址与地区的方法,chianz.comip_PHP教程
-
求一个网段的开始、结束IP地址
-
php求一个网段开始与结束IP地址的方法_PHP
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论