Anderson Guimarães Postado Abril 17, 2012 Denunciar Share Postado Abril 17, 2012 Calcula rede<?php //$ip_inf = $_POST["ip_inf"];//variavel recebe o IP de outra pagina... //$mask_inf = $_POST["mask_inf"];//variavel recebe a máscara de outra pagina... $ip_inf = "192.168.1.33"; $mask_inf = "255.255.255.128"; $rede_inf = "0.0.0.0"; $IP_D = explode(".", $ip_inf); //Matriz de 4 que contem os valores decimais dos octetos... $MASC_D = explode(".", $mask_inf); $REDE_D = explode(".", $rede_inf); $contMASK_decimal = 0; for($i=0; $i<4; $i++) //for 1 { if ($i != 0) { $IPconvertido = $IPconvertido."."; $maskconvertido = $maskconvertido."."; } $contMASK[$i] = 0; $Aux_IP_D = $IP_D[$i]; $Aux_MASC_D = $MASC_D[$i]; for ($l=7; $l>-1; $l--) //for 2 { $oct_ip_BIN[$l] = $Aux_IP_D%2; $Aux_IP_D = floor($Aux_IP_D/2); $oct_ma_BIN[$l] = $Aux_MASC_D%2; if ($oct_ma_BIN[$l] == "1") { $contMASK_decimal = $contMASK_decimal + 1; $contMASK[$i] = $contMASK[$i] + 1; } $Aux_MASC_D = floor($Aux_MASC_D/2); $oct_re_BIN[$l] = ($oct_ip_BIN[$l]*$oct_ma_BIN[$l]); switch ($l) { case 0: $REDE_D[$i] = (($REDE_D[$i])+($oct_re_BIN[$l]*128)); break; case 1: $REDE_D[$i] = (($REDE_D[$i])+($oct_re_BIN[$l]*64)); break; case 2: $REDE_D[$i] = (($REDE_D[$i])+($oct_re_BIN[$l]*32)); break; case 3: $REDE_D[$i] = (($REDE_D[$i])+($oct_re_BIN[$l]*16)); break; case 4: $REDE_D[$i] = (($REDE_D[$i])+($oct_re_BIN[$l]*8)); break; case 5: $REDE_D[$i] = (($REDE_D[$i])+($oct_re_BIN[$l]*4)); break; case 6: $REDE_D[$i] = (($REDE_D[$i])+($oct_re_BIN[$l]*2)); break; case 7: $REDE_D[$i] = (($REDE_D[$i])+($oct_re_BIN[$l]*1)); break; }//fim do switch case 1 }//fim do for 2 //FOR para imprimir os octeto convertido for ($x=0; $x<8; $x++) //for 2 { $IPconvertido = $IPconvertido.$oct_ip_BIN[$x]; $maskconvertido = $maskconvertido.$oct_ma_BIN[$x]; } }//fim do for 1 echo "<HTML><HEAD><TITLE>Calculo de rede</TITLE></HEAD>"; echo "<br><h2><p align='center'>:: Resultado do Cálculo de Rede ::</p></h2><br>"; $hosts = pow(2, (32-$contMASK_decimal)); $hostsv = $hosts - 2; if ($contMASK_decimal > 23) { $broadcast = $REDE_D[3] + $hosts - 1; } if ($contMASK_decimal > 23) { $broadcast = $REDE_D[3] + $hosts - 1; $broadcast = $REDE_D[0].".".$REDE_D[1].".".$REDE_D[2].".".$broadcast; $ipfinal = $REDE_D[3] + $hosts - 2; $ipfinal = $REDE_D[0].".".$REDE_D[1].".".$REDE_D[2].".".$ipfinal; } if ($contMASK_decimal > 15 and $contMASK_decimal < 24) { $tempaux = 24 - $contMASK_decimal; $tempaux = ((($REDE_D[2]) + (pow(2, $tempaux))) - 1); $broadcast = $REDE_D[0].".".$REDE_D[1].".".$tempaux.".255"; $ipfinal = $REDE_D[0].".".$REDE_D[1].".".$tempaux.".254"; } if ($contMASK_decimal > 7 and $contMASK_decimal < 16) { $tempaux = 16 - $contMASK_decimal; $tempaux = ((($REDE_D[1]) + (pow(2, $tempaux))) - 1); $broadcast = $REDE_D[0].".".$tempaux.".255.255"; $ipfinal = $REDE_D[0].".".$tempaux.".255.254"; } if ($contMASK_decimal > 1 and $contMASK_decimal < 8) { $tempaux = 8 - $contMASK_decimal; $tempaux = ((($REDE_D[0]) + (pow(2, $tempaux))) - 1); $broadcast = $tempaux.".255.255.255"; $ipfinal = $tempaux.".255.255.254"; } $ipinicial = $REDE_D[3] + 1; $ipinicial = $REDE_D[0].".".$REDE_D[1].".".$REDE_D[2].".".$ipinicial; echo "<table border='0' width='50%'>"; echo "<tr>"; echo "<td><b>IP Informado:</b></td>"; echo "<td>$ip_inf</td>"; echo "</tr>"; echo "<tr>"; echo "<td><b>Máscara Informada:</b></td>"; echo "<td>$mask_inf = / $contMASK_decimal</td>"; echo "</tr>"; echo "<tr>"; echo "<td><b>IP Binário:</b></td>"; echo "<td>$IPconvertido</td>"; echo "</tr>"; echo "<tr>"; echo "<td><b>Máscara Binária:</b></td>"; echo "<td>$maskconvertido</td>"; echo "</tr>"; echo "<tr>"; echo "<td><b>Rede:</b></td>"; echo "<td>$REDE_D[0].$REDE_D[1].$REDE_D[2].$REDE_D[3]</td>"; echo "</tr>"; echo "<tr>"; echo "<td><b>N. de Hosts:</b></td>"; echo "<td>$hosts</td>"; echo "</tr>"; echo "<tr>"; echo "<td><b>Hosts Válidos:</b></td>"; echo "<td>$hostsv</td>"; echo "</tr>"; echo "<tr>"; echo "<td><b>IP inicial:</b></td>"; echo "<td>$ipinicial</td>"; echo "</tr>"; echo "<tr>"; echo "<td><b>IP Final:</b></td>"; echo "<td>$ipfinal</td>"; echo "</tr>"; echo "<tr>"; echo "<td><b>Broadcast:</b></td>"; echo "<td>$broadcast</td>"; echo "</tr>"; echo "</table>"; ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Anderson Guimarães
Calcula rede
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.