Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Listar un rango de IP en un desplegable

Estas en el tema de Listar un rango de IP en un desplegable en el foro de PHP en Foros del Web. Buenas, necesito crear un desplegable que dado una IP y una Mascara liste todas las IP's disponible(excepto la de red y de broadcast) Tengo el ...
  #1 (permalink)  
Antiguo 30/10/2013, 03:57
 
Fecha de Ingreso: octubre-2013
Ubicación: Torrelavega
Mensajes: 23
Antigüedad: 10 años, 5 meses
Puntos: 0
Listar un rango de IP en un desplegable

Buenas, necesito crear un desplegable que dado una IP y una Mascara liste todas las IP's disponible(excepto la de red y de broadcast)

Tengo el formulario, pero no el php para generar la lista :S

Código PHP:
Ver original
  1. echo "<p align='center'>Rango de IP's</p>";
  2.  
  3. echo "<form action='' method='POST'>";
  4.  
  5. echo "<table align='center' border=2 bordercolor='000000'>";
  6. echo "<thead><tr bgcolor='#D8D8D8'>
  7. <th size=3>IP</th>
  8. <th size=3>Mascara</th>
  9. <th size=3>Validar</th></thead>
  10. <tbody><tr><td><input type='text' value='red' name='Red' /></td>
  11.         <td><input type='text' value='mask' name='Mascara'/></td>
  12.         <td><button type='submit'value='validar' name='validar'>Validar</button></tr></tbody>"
  13.  
  14. ?>
  #2 (permalink)  
Antiguo 30/10/2013, 04:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años
Puntos: 574
Respuesta: Listar un rango de IP en un desplegable

Ufff es casi una pregunta de redes mas que de php....

No se si existen funciones especificas para tratar IPs, si no lo puedes tratar como un texto:

debes usar

explode() para obtener un array con los elemento de la ip

P.e. $arIP=explode(".","172.26.0.0");
$arIP[0] es igual a 172
$arIP[1] es igual a 26
$arIP[2] es igual a 0
$arIP[3] es igual a 0

Lo mismo para la mascara


Luego un bucle for, o varios anidados, y algun condicional, te pude construir el select


Código PHP:
Ver original
  1. for ($i=0;$i<=255;$i++){
  2.  
  3. echo "<option value=".$arIP[0].".".$arIP[1].".".$arIP[2].".".$i.">".$arIP[0].".".$arIP[1].".".$arIP[2].".".$i."</option>;
  4.  
  5. }

Aplica tu conocimiento de redes para que salgan las ip que te interesan...

Si hay algo en el manual

__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 06/11/2013, 04:26
 
Fecha de Ingreso: octubre-2013
Ubicación: Torrelavega
Mensajes: 23
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Listar un rango de IP en un desplegable

Cita:
Iniciado por quimfv Ver Mensaje
Ufff es casi una pregunta de redes mas que de php....

No se si existen funciones especificas para tratar IPs, si no lo puedes tratar como un texto:

debes usar

[URL="http://php.net/manual/es/function.explode.php"]explode()[/URL] para obtener un array con los elemento de la ip

P.e. $arIP=explode(".","172.26.0.0");
$arIP[0] es igual a 172
$arIP[1] es igual a 26
$arIP[2] es igual a 0
$arIP[3] es igual a 0

Lo mismo para la mascara


Luego un bucle for, o varios anidados, y algun condicional, te pude construir el select


Código PHP:
Ver original
  1. for ($i=0;$i<=255;$i++){
  2.  
  3. echo "<option value=".$arIP[0].".".$arIP[1].".".$arIP[2].".".$i.">".$arIP[0].".".$arIP[1].".".$arIP[2].".".$i."</option>;
  4.  
  5. }

Aplica tu conocimiento de redes para que salgan las ip que te interesan...

Si hay algo en el manual

  • [URL="http://us3.php.net/manual/es/function.inet-ntop.php"]inet_ ntop[/URL]
  • [URL="http://us3.php.net/manual/es/function.inet-pton.php"]inet_ pton[/URL]
  • [URL="http://us3.php.net/manual/es/function.ip2long.php"]ip2long[/URL]
  • [URL="http://us3.php.net/manual/es/function.long2ip.php"]long2ip[/URL]

Esta bastante bien, y me sale todas las ips pero claro, solo del 0 a 255, ya que no esta la mascara, pero claro necesito poder elegir la mascara, y que salgan todos los resultados..
Lo mas gracioso es que el codigo que tengo arriba funciona aqui: http://3v4l.org/Wl3XG pero en mi pagina noo. Aun asi tambien solo saca hasta 254..

He cambiado un poco tu codigo, para que no saliera las que acaban en .0 y en .255
De todos modos muchas gracias :)

P.D Siento por no haber respondido antes, pero he estado bastante liado con otro script, y no me he pasado por el foro
  #4 (permalink)  
Antiguo 07/11/2013, 08:45
 
Fecha de Ingreso: octubre-2013
Ubicación: Torrelavega
Mensajes: 23
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Listar un rango de IP en un desplegable

Ya esta solucionado, os dejo el codigo por si alguien mas lo necesita

Código PHP:
<!--Formulario IP's validas-->
<form action='' method='POST'>

<!--Tabla IP's validaas-->
<table id='tabla3'>
<thead>
<tr>
    <th>Ip de red/Mascara</th>
    <th>Validar</th>
    <th>Listado</th>
</thead><tbody>
</tr>

<tr>
    <td>
        <input type='text' name='ip' value='0.0.0.0/00'/>
    </td>
    <td>
        <input type='submit' value='Validar' name='validar'/>
    </td>
    <td>
        <select name='rango'>

            <?php

            $range
=$_POST['ip'];

            function 
rango($range){
                
$parts explode('/',$range);
                
$exponent 32-$parts[1].'-';
                
$count pow(2,$exponent);
                
$start ip2long($parts[0]);
                
$end $start+$count;
                return 
array_map('long2ip'range($start+1$end-2) );
            }

            foreach((
rango($range)) as $i){

            echo 
"<option value=" $i ">" $i "</option>";
            }

            
?>
    </td>
</tr>
</tbody></table>

Etiquetas: ip, lista, listbox, rango, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:54.