Mostrando entradas con la etiqueta isIP. Mostrar todas las entradas
Mostrando entradas con la etiqueta isIP. Mostrar todas las entradas

viernes, 11 de mayo de 2012

esIPv4 en Java

Método en Java que determina si un String corresponde a un IPv4 válida.
Recuerden que el javadoc es un documento html generado, por lo tal debemos utilizar el &_acute; cuando necesitamos puntuación en la documentación del método; y para que los mensajes en pantalla se generen con puntuación debemos utilizar las salidas unicode con el \uXXXX, con esto nos aseguramos que los símbolos y caracteres especiales se muestren correctamente en cualquier SO.

/**
  * M&eacte;todo que verifica si el String ingresado corresponde a una dirección IP v4.
  * @param ip IP a verificar.
  * @return true Si el String ingresado corresponde a una dirección IP v4. 
  * @throws java.lang.Exception En caso de que el String ingresado no respete las reglas de una IP v4. 
  */
public static boolean esIPv4( String ip ) throws Exception{ 
    try{ 
        /* Verificacion de la longitud del texto. */
        if( ip == null || ip.trim().length() < 7 ){
            return false;
        }


        /* Segmentacion de los valores de la IP. */
        String[] temp = ip.split( "\\." ); 
    
        /* Verificacion de la cantidad de octetos ingresados. */ 
        if( temp.length != 4 ){ 
            return false;
        } 
       
        /* Que todos los octetos sean un numero. */
        /* Ver metodo isNumeric( String ) en mi blog. */
        for( String oct : temp ){ 
            if( !isNumeric(oct) ){ return false; } 
        }


        /* Limites de valores permitidos en los octetos. */ 
        int[] dir = new int[]{ 
                Integer.parseInt( temp[0] ), 
                Integer.parseInt( temp[1] ), 
                Integer.parseInt( temp[2] ), 
                Integer.parseInt( temp[3] ) 
        };


        if( dir[0] > 254 || dir[0] <= 0 || 
               dir[1] > 254 || dir[1] < 0 || 
               dir[2] > 254 || dir[2] < 0 || 
               dir[3] > 254 || dir[3] <= 0 ){ 
            return false; 
        } 
     
        return true;
    }catch( Exception ex ){ 
        throw new Exception( 
             "Error en el m\u00c9todo: esIPv4( String )\n - " + ex.getMessage() 
        ); 
    } 
}