Foros del Web » Programando para Internet » PHP »

Crear un contador de ips

Estas en el tema de Crear un contador de ips en el foro de PHP en Foros del Web. Buenas a todos, este es mi primer post y lo primero que estoy pensando es "¡Que bien poder escribir en Castellano!" :p Llevo tiempo queriendome ...
  #1 (permalink)  
Antiguo 03/08/2004, 20:21
 
Fecha de Ingreso: agosto-2004
Mensajes: 5
Antigüedad: 13 años, 4 meses
Puntos: 0
Crear un contador de ips

Buenas a todos, este es mi primer post y lo primero que estoy pensando es "¡Que bien poder escribir en Castellano!" :p

Llevo tiempo queriendome iniciar en php, he leido muchos tutoriales y ejemplos que he llegado a comprender pero jamás habia hecho un script, pues bien hoy me he puesto a hacer mi primer script solo para probar como ando de imaginación y todo es mas dificil cuando eres tu el que tiene que escribirlo jejje

Simplemente quiero listar las IPS que hay entre la 81.35.0.0. y la 81.39.255.255, así como conocer cuantas son en número.

El codigo que escribí fue este

Código PHP:
<?php
$a
=81;
$b=35;
$c=0;
$d=0;
$numerototal=0;
for (
$b=35;$b<=39;$b=$b+1)
    {
$n=$n+1;
    for (
$c=0;$c<=255;$c=$c+1)
        {for (
$d=0;$d<=255;$d=$d+1
            {echo (
"ip:"."$a.$b.$c.$d"."<br>\n");
            
$numerototal++;}}}
echo (
"$numerototal")
No estoy seguro de que esté bien porque en teoría segun la solucion que yo tengo hecha del ejemplo por otro metodo es 32769 ips y a mi me dan 14 menos o así aunque mirando la lista me parece que salen todas xD

Despues me plantee si podía obtener lo mismo de este modo:

Código PHP:
<?php
$a
=81;
$b=35;
$c=0;
$d=0;
while(
$b<=39)
    {for(
$c=0;$c<=255;$c++)
        {while(
$d<=255){echo("ip:"."$a.$b.$c.$d"."<br>\n");
                 
$d++;}
        }
    
$b++;}
pero así solo me lista las primeras 255 ips y no se por qué :(

Me gustaría que me dieseis vuestra opnion de por qué no me sale, qué es lo que planteo mal y sobre todo como lo haríais vosotros, ya se que es una cosa muy básica pero algo tenía que empezar :)

Gracias de antemano

Última edición por HumanNature; 03/08/2004 a las 20:23
  #2 (permalink)  
Antiguo 03/08/2004, 20:59
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 35
Antigüedad: 15 años, 1 mes
Puntos: 0
Mensaje

lo que pasa es que en tu ultimo while tienes la condicion d<255.
cuando c=0, no hay problema, d es cero y se repite el ciclo 255 veces, luego cuando c=1, d no es cero, si no que es 255 (debido al ciclo anterior) luego no se ejecutara nada.
entendiste?.
__________________
Raúl Angulo
Webmaster Profisica.cl
  #3 (permalink)  
Antiguo 04/08/2004, 09:23
 
Fecha de Ingreso: agosto-2004
Mensajes: 5
Antigüedad: 13 años, 4 meses
Puntos: 0
Gracias raoII tu comentario me ayudo a darme cuenta de por qué no funcionaba, así que modifique la segunda manera para hacerlo así y esto si que funciona:

Código PHP:
<?php
$a
=81;
$b=35;
$c=0;
$d=0;
while(
$b<=39)
    {for(
$c=0;$c<=255;$c++)
        {while(
$d<=255){echo ("ip:"."$a.$b.$c.$d"."<br>\n");
                 
$d++;
          
                }
$d=0;
        }
    
$b++;
    }
?>
  #4 (permalink)  
Antiguo 04/08/2004, 09:37
 
Fecha de Ingreso: agosto-2004
Mensajes: 5
Antigüedad: 13 años, 4 meses
Puntos: 0
Tb me sale haciendolo con tres "whiles"

Código PHP:
$a=81;
$b=35;
$c=0;
$d=0;
while(
$b<=39)
    {while(
$c<=255)
        {while(
$d<=255){echo ("ip:"."$a.$b.$c.$d"."<br>\n");
                 
$d++;
          
                }
$d=0;$c++;
        }
    
$b++;$c=0;
    }
?> 
¿Alguien me puede decir si hay alguna de las tres maneras que sea mejor?
¿Es mas carga 3 "for" que 3 "while"?
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 11:21.