Hoy vamos a ver cómo generar IPs con Java. La idea surge de la necesidad de disponer de un conjunto de IPs para realizar unas simulaciones de una pruebas, de ahí este pequeño código que nos permite la generación de IPs.
Números aleatorios
Lo primero es entender qué es una IP o de qué se compone. Si lo vemos de una forma muy sencilla, sin hablar de máscaras, subredes o notaciones CDIR. La IP estaría compuesta por 4 números que van del 0 al 255, cada número separado por un punto. Por lo tanto un conjunto de IPs podrían ser las siguientes:
236.205.19.12 107.40.175.172 98.172.91.43 187.227.66.225 72.169.19.77
En este artículos hablamos de generar IPs v4. No entramos en cómo generar IPs v6.
Así que lo primero que necesitamos es generar con Java números aleatorios del 0 al 255. Como ya vimos en el artículo de generar un número al Azar necesitamos del método .random()
de la clase Math
. Este método nos devuelve un número mayor o igual de 0.0 y menor a 1.0. Así que lo que tendremos que hacer es multiplicar su valor por 256 y convertirlo a un formato entero.
public static int numeroAleatorio() { // Método que devuelve un número aleatorio entre 0 y 255 return (int) (Math.random()*256); }
StringBuilder para construir la IP
Ahora tendremos que ir componiendo una cadena formada por 4 números aleatorios separados por puntos. Para ir construyendo cadenas y como buena práctica es utilizar un StringBuilder
, más que ir sumando cadenas. Así que que creamos nuestro StringBuilder
.
StringBuilder sbIP = new StringBuilder();
Lo siguiente será el ir añadiendo número y punto por tres ocasiones, así que utilizamos un bucle for, y acabamos con un punto.
for (int x=0; x<3; x++) { sbIP.append(String.valueOf(numeroAleatorio())).append("."); } sbIP.append(String.valueOf(numeroAleatorio()));
Vamos a incluirlo en un método ipAleatoria() para poder invocarlo desde otros sitios.
public static String ipAleatoria() { StringBuilder sbIP = new StringBuilder(); for (int x=0; x<3; x++) { sbIP.append(String.valueOf(numeroAleatorio())).append("."); } sbIP.append(String.valueOf(numeroAleatorio())); return sbIP.toString(); }
Generar lista de IPs aleatorias
Lo último que vamos a hacer es mostrar un listado de IPs invocando al método ipAleatoria() que acabamos de crear. Nuevamente utilizamos un bucle for para sacar la información por pantalla mediante un System.out.
for (int x=0;x<100;x++) { System.out.println(ipAleatoria()); }
Y ya tenemos como generar IPs con Java de forma aleatoria.