网站地图    收藏   

主页 > php专栏 > php应用 >

php把IP地址转换成广播地址的例子 - php高级应用

来源:自学PHP网    时间:2014-11-27 22:16 作者: 阅读:

[导读] Broadcast Address(广播地址)是专门用于同时向网络中所有工作站进行发送的一个地址,在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所......

php把IP地址转换成广播地址的例子

Broadcast Address(广播地址)是专门用于同时向网络中所有工作站进行发送的一个地址,在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机.

网络广播地址计算方法:

1)IP地址与子网掩码进行“位与”运算,得到网络地址

2)子网掩码“取反”运算,然后与网络地址进行“位或”运算,得到广播地址

PHP实例代码如下:

  1. //ip地址转换广播地址 
  2. private function ip2broadcast($ip,$mask){ 
  3.  $ipSplit = explode('.',$ip); 
  4.  $maskSplit = explode('.',$mask); 
  5.  $broadcast = null; 
  6.  for ($i=0; $i < 4; $i++) { 
  7.   $ipBin = sprintf("%b",$ipSplit[$i]); 
  8.   while((8-strlen($ipBin))>0) $ipBin = "0".$ipBin
  9.  
  10.   $maskBin = sprintf("%b",$maskSplit[$i]); 
  11.   while((8-strlen($maskBin))>0) $maskBin = "0".$maskBin
  12.  
  13.   $broadcastBin = null;//www.phpfensi.com 
  14.   for ($j=0; $j < 8; $j++) {  
  15.    $broadcastBin .= (!intval(substr($maskBin$j , 1))) | 
  16.       (intval(substr($ipBin$j , 1)) & intval(substr($maskBin$j , 1))); 
  17.   } 
  18.  
  19.   if ($i>0) $broadcast .= "."
  20.   $broadcast .= bindec($broadcastBin); 
  21.  } 
  22.  return $broadcast
  23. }

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论