jueves, 11 de diciembre de 2014

Calculadora IP en Matlab

Ingenieria de Sistemas

Resumen

La calculadora Ip realizada en Matlab permitira a los usuarios poder calcular la mascara de Sub red y tambien  la cantidad de equipos con las que cuenta cada sub red, Matlab es una herramienta de software matemático que ofrece un entorno de desarollo intengrado (IDE) con un lenguaje de programación propio (lenguaje M) y servicio de especie. Está disponible para las plataformas Windows, Linux y otros.

Introduccion 

Sub Redes

Las subredes son un método para maximizar el espacio de direcciones IPv4 de 32 bits y reducir el tamaño de las tablas de enrutamiento en una interred mayor. En cualquier clase de dirección, las subredes proporcionan un medio de asignar parte del espacio de la dirección host a las direcciones de red, lo cual permite tener más redes. La parte del espacio de dirección de host asignada a las nuevas direcciones de red se conoce como número de subred.
Además de hacer que el espacio de la dirección IPv4 sea mas eficaz, las subredes presentan varias ventajas administrativas. El enrutamiento puede complicarse enormemente a medida que aumenta el número de redes. Por ejemplo, una pequeña organización podría asignar a cada red local un número de clase C. A medida que la organización va aumentando, puede complicarse la administración de los diferentes números de red. Es recomendable asignar pocos números de red de clase B a cada división principal de una organización. Por ejemplo, podría asignar una red de clase B al departamento de ingeniería, otra al departamento de operaciones, etc. A continuación, podría dividir cada red de clase B en redes adicionales, utilizando los números de red adicionales obtenidos gracias a las subredes. Esta división también puede reducir la cantidad de información de enrutamiento que se debe comunicar entre enrutadores.

Matlab 

Es un software muy usado en universidades y centros de investigación y desarrollo. En los últimos años ha aumentado el número de prestaciones, como la de programar directamente procesadores digitales de señal o crear código VHDL.

Fue creado por Cleve Moler en 1984, surgiendo la primera versión con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de álgebra lineal y análisis numérico, sin necesidad de escribir programas en dicho lenguaje. El lenguaje de programación M fue creado en 1970 para proporcionar un sencillo acceso al software de matrices LINPACK y EISPACK sin tener que usar Fortran.

Durante mucho tiempo hubo críticas porque MATLAB es un producto propietario de The Mathworks, y los usuarios están sujetos y bloqueados al vendedor. Recientemente se ha proporcionado una herramienta adicional llamada MATLAB Builder bajo la sección de herramientas "Application Deployment" para utilizar funciones MATLAB como archivos de biblioteca que pueden ser usados con ambientes de construcción de aplicación .NET o Java. Pero la desventaja es que el computador donde la aplicación tiene que ser utilizada necesita MCR(MATLAB Component Runtime) para que los archivos MATLAB funcionen correctamente. MCR se puede distribuir libremente con los archivos de biblioteca generados por el compilador MATLAB.

Procedimiento

 Se realizo en siguiente codigo en Matlab:

clc
close all
clear all

N=menu('Calculadora IP, Ingeniera de Redes I','Seleccionar Clases','Cancelar');
switch N
    case 1
        Z=menu('Seleccione su clase','CLASE A','CLASE B','CLASE C');
        switch Z
            case 1
                C=input('Digite el numero de la clase(de /8 a /32)=');
           
                pr=C-8;
                nsr=2^(pr);
                neq=(2^(24-pr))-2;
               
                if C>24
                    M1=255;
                    M2=255;
                    M3=255;
                    M4=(255-2^(24-pr))+1;
                    mascara=sprintf('%g.%g.%g.%g',M1,M2,M3,M4)
                    sprintf('el numero de equipo es %g y el de subred es %g', neq, nsr)
                else if C>16
                    M1=255;
                    M2=255;
                    M4=0;
                    M3=(255-2^(16-pr))+1;
                    mascara=sprintf('%g.%g.%g.%g',M1,M2,M3,M4)
                    sprintf('el numero de equipo es %g y el de subred es %g', neq, nsr)
                    else
                        M1=255;
                        M3=0;
                        M2=(255-2^(8-pr))+1;
                        M4=0;
                        sprintf('el numero de equipo es %g y el de subred es %g', neq, nsr)
                        mascara=sprintf('%g.%g.%g.%g',M1,M2,M3,M4)
                    end
                end
                final =sprintf('Gracias..')
              
            case 2
                 C=input('Digite el numero de la clase(de /16 a /32)=');
              
                pr=C-16;
                nsr=2^(pr);
                neq=(2^(16-pr))-2;
               
                if C>23
                    M1=255;
                    M2=255;
                    M3=255;
                    M4=(255-2^(16-pr))+1;
                    mascara=sprintf('%g.%g.%g.%g',M1,M2,M3,M4)
                    sprintf('el numero de equipo es %g y el de subred es %g', neq, nsr)
                else
                   M1=255;
                   M2=255;
                   M3=(255-2^(8-pr))+1;
                   M4=0;
                   sprintf('el numero de equipo es %g y el de subred es %g', neq, nsr)
                   mascara=sprintf('%g.%g.%g.%g',M1,M2,M3,M4)
                end
                final =sprintf('Gracias..')
            case 3
                C=input('Digite el numero de la clase(de /24 a /32)=');
                D1 = input('Digite el primer octeto de la red ');
                D2 = input('Digite el segundo octeto de la red ');
                D3 = input('Digite el tercer octeto de la red ');
         
                pr=C-24;
                M1=255;
                M2=255;
                M3=255;
                M4=(255-2^(8-pr))+1;
               
                mascara=sprintf('%g.%g.%g.%g',M1,M2,M3,M4)
                nsr=2^(pr);
                neq=(2^(8-pr))-2;
                sprintf('El numero de equipos es %g y el de subred es %g',neq,nsr)
                Final=sprintf('Gracias..')
                e=-1;
                for a=1:1:nsr
                    e0=e+1;
                    e1=e0+neq;
                    e=e1+1;
                    D4=e0;
                    D5=e;
                    INICIO=sprintf('El rango va desde %g.%g.%g.%g',D1,D2,D3,D4)
                    FINAL=sprintf('El rango va desde %g.%g.%g.%g',D1,D2,D3,D5)
                end
            case 2
               
        end
end

 Captura del Menu donde te permite seleccionar una opcion:

Captura del menu para seleccionar las clases:

Clase A:
 Clase B:
 Clase C: donde ademas te permite ver las subredes, su inicio y el final de las direcciones IP



1 comentario: