Calcular un Dirección de Red en base a una Dirección IP y la Mascara de Red

El día de ayer me encontraba repasando algunos conceptos básicos sobre direccionamiento IP, y me tope con el caso de calcular una dirección de red en base a una dirección IP y una mascara de red.

La operación es bastante sencilla, solo basta con convertir la dirección ip y la mascara a binario y comenzar a realizar un ‘AND’ bit por bit y convertir el resultado de binario a decimal y ta, tan !! Sabremos la dirección de red. 😀

calculo de id de Red

 

La imagen superior muestra la operación de la dirección de red o id de la red.

En un principio usaba lápiz y papel, con el tiempo se adquiere destreza y puede realizarse como un calculo mental. Ha pasado un poco de tiempo se ha empolvado un poco esa destreza, pero me he hecho de otras habilidades bastante útiles. Así que mientras  desempolvaba esos conocimientos me dije a mi mismo, mi mismo hay que hacerlo con JavaScript. 😀

En un principio comencé por declarar variables en javascript y asignar la dirección ip y la mascara, hacer un Split, convertir posición del arreglo en binario, completar ceros a la izquierda y realizar ‘AND’ bit por bit. Tengo que admitir que ese código era un chulada.

Me detuve a leer este post sobre Operadores sobre bits, lo cual me facilito muuuuuuucho la vida.

A continuación comparto el código:

Calculo Dirección de Red

var ip = '192.168.1.241';
var mask = '255.255.255.0';
var ipSplit = ip.split('.');
var maskSplit = mask.split('.');

/**
* La funcion determina la dirección de red en base a una direccion ip y una mascara de red
*
**/
function networkAddress(ipSplit, maskSplit){
var netAddress = new Array;
for(var i = 0 ;i < 4; i++){
netAddress.push(parseInt(ipSplit[i]) & parseInt(maskSplit[i]));
}
return netAddress;
};

networkAddress(ipSplit, maskSplit);

Basta cambiar las direcciones y ejecutarlo directamente sobre la consola de JavaScript de Chrome o su Browser favorito y ta, tan.

Resultado :D

Mi plan es hacer una extensión de Chrome y una función personalizada para Spreadsheet con GoogleAppScript que inicialmente calcule las direcciones de red y en un futuro pueda realizar direccionamiento VLSM, pero por cuestiones de sueño y trabajo no  pude hacerlo. Cuando este lista la subiré a la Chrome Web Store.

Espero que les sea de utilidad. Saludos.

Happy Hacking !

Deja una respuesta:

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s