Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/12/2007, 15:16
Avatar de yetrus
yetrus
 
Fecha de Ingreso: marzo-2006
Mensajes: 252
Antigüedad: 19 años
Puntos: 0
Validar IP/Red 0-255.X.X.1-254/2-32

Hola Gente que tal !!

Tratando de validar el ingreso en un text una IP definiendo que :

si serian validas "0.0.0.1" o "255.255.255.254" o "0~255.0~255.0~255.1~254 / 2~32"

y no lo serian

"0.0.0.0" o "255.255.255.255" o 10.10.10.2 /33

Creo que el codigo esta correcto, esta en una funcion que retorna true al ser una IP Valida, pero se parece mucho a mi suegra (reclama por todo) (ordene un poco el codigo)

Alguna idea?
sl2

Código PHP:
function ValidarIP($IP)                   ////////////////////////// validador de IP    #################
{
    
$IPValida false;
    
$IP str_replace(" ","",$IP);
    if (
substr_count($IP,".") == 3)
    {
    if (
substr_count($IP,'/') == 1)  //con red
        
{
            {
            list(
$IP,$Red) = split('[/]',$IP); 
            if
            (
            (
$Red == 32) || 
            (
$Red == 16) || 
            (
$Red ==  8) || 
            (
$Red ==  4) || 
            (
$Red ==  2)
            )    
                {
                list(
$oct1,$oct2,$oct3,$oct4) = split ('[.]',$IP);
                if 
                (
                (
is_numeric($oct1) == true) && 
                (
is_numeric($oct2) == true) && 
                (
is_numeric($oct3) == true) && 
                (
is_numeric($oct4) == true)
                )
                    {
                    if
                    (
                    ((
$oct1 >= 0)&& ($oct1 <= 255)) && 
                    ((
$oct2 >= 0)&& ($oct2 <= 255)) && 
                    ((
$oct3 >= 0)&& ($oct3 <= 255)) && 
                    ((
$otc4 255)&& ($otc4 ))
                    )
                        {
                            
$IPValida true;                        
                        }
                    }
                }    
            }
        }
    if(
substr_count($IP,'/') == )  //sin  Red
            
{
                {
                list(
$oct1,$oct2,$oct3,$oct4) = split ('[.]',$IP);
                    if 
                    (
                    (
is_numeric($oct1) == true) && 
                    (
is_numeric($oct2) == true) && 
                    (
is_numeric($oct3) == true) && 
                    (
is_numeric($oct4) == true )
                    ) 
                    {
                        if 
                        (
                        ((
$oct1 >= 0)&& ($oct1 <= 255)) && 
                        ((
$oct2 >= 0)&& ($oct2 <= 255)) && 
                        ((
$oct3 >= 0)&& ($oct3 <= 255)) && 
                        ((
$otc4 >  0)&& ($otc4 <  255))
                        )
                        {
                            
$IPValida true;                        
                        }
                    }
                }
            }
        }
    
return 
$IPValida;


Última edición por yetrus; 22/12/2007 a las 08:00 Razón: Ordene un poco el codigo