Java Regex para validar la dirección IPv4

Java Regex para validar la dirección IPv4

En este artículo, aprenderemos cómo validar direcciones IPv4 usando Java Regex

Índice
  1. formato de dirección IP
  2. Regex para validar la dirección IP
  3. Validar dirección IP en Java

formato de dirección IP

Primero veamos ejemplos de direcciones IPv4 típicas:

0.0.0.0
172.16.254.1
255.255.255.255
192.168.0.1
192.168.1.255

Tenemos las siguientes observaciones de los ejemplos anteriores: -

  1. Una dirección IPv4 válida tiene el formato ABCD
  2. La longitud de A, B, C y D es de 1 a 3 dígitos
  3. El valor de A, B, C y D está entre 0 y 255
  4. No se permiten ceros iniciales

Regex para validar la dirección IP

^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.?\\b){4}$

O,

  1. \\d hacer coincidir números de un solo dígito entre 0 y 9
  2. [1-9]\\d unir números entre 10 y 99
  3. 1\\d\\d números de coincidencia entre 100 y 199
  4. 2[0-4]\\d números de coincidencia entre 200 y 249
  5. 25[0-5] números de coincidencia entre 250 y 255
  6. (\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]) hacer coincidir números entre 0 y 255
  7. \\.? para hacer coincidir el operador de punto . después de cada número entre 0 y 255
  8. \\b es un límite de palabra
  9. {4} hacer coincidir 4 conjuntos de estos números (es decir, entre 0 y 255)

Podemos resumir aún más la expresión regular anterior tomando el común \\d afuera:-

^(((|[1-9]|1\\d|2[0-4])\\d|25[0-5])\\.?\\b){4}$

Validar dirección IP en Java

Veamos el método Java para validar direcciones IPv4 usando la expresión regular anterior:

public static boolean validateIPv4Address(String ipv4){
  String regex = "^(((|[1-9]|1\\d|2[0-4])\\d|25[0-5])\\.?\\b){4}$";
  Pattern pattern = Pattern.compile(regex);
  Matcher matcher = pattern.matcher(ipv4);
  return matcher.matches();
}

Usemos el método anterior para ejecutar casos de prueba: -

  1. Probar direcciones IPv4 válidas:-
    @Test
    public void validateIPv4Address_validIPv4Addresses(){
      assertTrue(validateIPv4Address("0.0.0.0"));  // pass
      assertTrue(validateIPv4Address("127.0.0.1")); // pass
      assertTrue(validateIPv4Address("192.168.10.1")); // pass
      assertTrue(validateIPv4Address("172.16.254.1")); // pass
      assertTrue(validateIPv4Address("192.168.1.255")); // pass
      assertTrue(validateIPv4Address("255.255.255.255")); // pass
      assertTrue(validateIPv4Address("10.98.30.56"));  // pass
    }
    
  2. Prueba de direcciones IPv4 no válidas: -
    @Test
    public void validateIPv4Address_invalidIPv4Addresses(){
      assertFalse(validateIPv4Address("192.168.0.256")); // value above 255
      assertFalse(validateIPv4Address("192.168.0.01")); // leading 0 in 01
      assertFalse(validateIPv4Address("192.168.0")); // only 3 sets, 4th missing
      assertFalse(validateIPv4Address(".192.168.0.1")); // starts with .
      assertFalse(validateIPv4Address(".192.168.0.1.")); // ends with .
    }
    

Si quieres conocer otros artículos parecidos a Java Regex para validar la dirección IPv4 puedes visitar la categoría Tutoriales.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas