You are on page 1of 14

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE CÓMPUTO

REDES DE COMPUTADORAS

“Calculadora v1”

Abstact

The abstract is a precise summary of the whole report. Its function is to preview the contents of
your report so that the reader can judge whether it is worth their while to read the whole report.

By:

LASTIRI ALFARO MARIA FERNANDA

Professor:
MSc. NIDIA ASUNCIÓN CORTEZ DUARTE

March 2018
Index

Contenido
Introduction:.............................................................................................................. 1

Literature review:....................................................................................................... 1

Software (libraries, packages, tools): ............................................................................ 1

Procedure: ................................................................................................................. 2

Results ...................................................................................................................... 2

Discussion:................................................................................................................ 3

Conclusions:.............................................................................................................. 4

References: ............................................................................................................... 4

Code ......................................................................................................................... 4

i
Introduction:
El propósito de esta práctica es facilitar el cálculo de cada una de estas características usando la
menor cantidad de memoria posible, o más bien sólo la necesaria.

Durante el desarrollo de esta práctica podremos apreciar todas las características de una dirección IP,
tales como su Clasificación, Máscara de Red, IP Broadcast, IP Madre, Tipo y Rango de Host.

Literature review:

La dirección IP es la “matrícula” que se nos asigna dentro de una red. Básicamente estamos
hablando de una secuencia de 4 grupos de 3 números cada uno que siguen una secuencia lógica. La
dirección IP de un equipo no tiene por qué ser siempre la misma. Esta puede variar en función de
las necesidades del entorno de red en el que nos encontremos. Las direcciones IP las podemos
encontrar seccionadas en las siguientes clases:

 CLASE A: El primer byte es un número del 1 al 127. Los últimos 3 bytes identifican host en la
red. La máscara de la subred 255.0.0.0
 CLASE B: El primer byte es un número del 128 al 191. El segundo bytes es parte de la
dirección de red. el 3 y 4 bytes solo identifican host en la red. Mascara de subred:
255.255.0.0
 CLASE C: EL primer byte es un número de 192 al 223. El segundo y tercer byte son parte de
la dirección de red.Mascara de subred 255.255.255.0.
 CLASE D: El primer byte es un número de 224 al 239.
 CLASE E: El primer byte es un número de 240 al 255 y está reservada para investigación.

MASCARA DE RED

Combinación de bits que sirve para delimitar el ámbito de una red de computadoras. Su función es
indicar a los dispositivos qué parte de la dirección IP es el número de la red, incluyendo la subred, y
qué parte es la correspondiente al host.

Software (libraries, packages, tools):


 Sublime Text 3
 MinGW

1
Procedure:

1. Lo primero que realiza el programa es pedir que ingreses una dirección IP, sabemos que
está constituida por 4 grupos de 3 números cada uno.
2. Al ingresar la IP el programa debe validar que sea válida, es decir que este dentro de los
rangos ya mencionados en el marco teórico.
3. Una vez que la IP ha pasado la validación, se prosigue a clasificarla, para esto se van a
comparar los
4. Una vez que se ha clasificado la dirección IP se desplegarán el resto de las características
que componen a la misma de acuerdo a su clasificación como son: IP MADRE, IP
BROADCAST, RANGO DE HOST.

2
Results

3
Discussion:
En las imágenes que se mostraron anteriormente, podemos observar los resultados que arroja el
programa para las diferentes direcciones que son agregadas.

El programa nos despliega de forma correcta la clasificación de la IP de acuerdo a los estándares


antes mencionados, observamos que se logró el objetivo de optimizar esta práctica mediante el uso
de sólo la memoria que es necesaria. De igual forma, podemos observar que se despliegan en resto
de las características de la dirección de acuerdo a la clasificación de la dirección.

Conclusions:
Durante esta práctica se implementaron en su totalidad los conceptos visto en clase, los cuales
describen las características de una dirección IP.
Podemos concluir que el uso de poca memoria para la realización de esta práctica fue necesaria debido
a que hace que el uso de las operaciones sea más sencillo y rápido.
También

References:

[1] Carlos-vialfa, “Dirección IP”, [En línea]. Disponible:

http://es.ccm.net/contents/267-direccion-ip

[2] EcuRed, “Máscara de Red”, [En línea]. Disponible:

https://www.ecured.cu/M%C3%A1scara_de_red

[3] Strada, “Operadores lógicos en C++”, [En línea]. Disponible:

http://michelletorres.mx/operadores-logicos-en-c:

Code
#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

int main(){

4
//Variables

unsigned char IP[4];

unsigned char MA[4];

short var[4];

unsigned char i;

printf("CALCULEMOS ESA IP 7u7 \n" );

//validacion de de la direccion IP

do{

printf("Ingresa tu IP :3 \n" );

scanf("%u.%u.%u.%u",&var[0], &var[1], &var[2], &var[3]);

}while(var[0]<0 || var[0]>256 || var[1]<0 || var[1]>256 || var[2]<0 || var[2]>256 || var[3]<0 ||


var[3]>256 ); // ggg esto no sale

IP[0]=var[0];

IP[1]=var[1];

IP[2]=var[2];

IP[3]=var[3];

printf("\n LA DIRECCION IPv4 es: " );

5
for(i=0; i<4;i++){

printf("%u", IP[i]);

printf(".");

printf("\n");

if(IP[0]&128){

if(IP[0]&64){

if(IP[0]&32){

if(IP[0]&16){

printf("\n ES CLASIFICACION: E\n");

printf("\n RESERVADO PARA INVESTIGACION");

}else{

printf("\n ES CLASIFICACION: D\n");

printf("\n MULTICAST");

}else{

printf("\n ES CLASIFICACION: C\n");

if(IP[3]==0){

printf("IP TIPO RED.\n");

}else{

if(IP[3]==255){

printf("IP TIPO BROADCAST \n");

6
}else{

printf("IP TIPO HOST\n");

//asignamos mascara

MA[0]=255;

MA[1]=255;

MA[2]=255;

MA[3]=0;

//calcular

printf(" \n LA IP MADRE ES: " );

for(i=0; i<4;i++){

printf("%d", IP[i]& MA[i]);

printf(".");

printf("\n");

7
printf("\n LA IP BROADCAST ES: " );

MA[0]=~MA[0];

MA[1]=~MA[1];

MA[2]=~MA[2];

MA[3]=~MA[3];

for(i=0; i<4;i++){

printf("%d", IP[i]|MA[i]);

printf(".");

printf("\n");

printf("EL RANGO DE HOST ES \n %u.%u.%u.1 a %u.%u.%u.254", IP[0], IP[1], IP[2],


IP[0],IP[1],IP[2]);

}else{

printf("\n ES CLASIFICACION: B\n");

if( IP[2]==0 && IP[3]==0){

printf("IP TIPO RED.\n");

}else{

8
if( IP[2]==255 && IP[3]==255){

printf("IP TIPO BROADCAST \n");

}else{

printf("IP TIPO HOST\n");

//asignamos mascara

MA[0]=255;

MA[1]=255;

MA[2]=0;

MA[3]=0;

printf("\n LA IP MADRE ES: " );

for(i=0; i<4;i++){

printf("%d", IP[i]& MA[i]);

printf(".");

printf("\n");

9
printf("\n LA IP BROADCAST ES: " );

MA[0]=~MA[0];

MA[1]=~MA[1];

MA[2]=~MA[2];

MA[3]=~MA[3];

for(i=0; i<4;i++){

printf("%d", IP[i]|MA[i]);

printf(".");

printf("\n");

printf("EL RANGO DE HOST ES \n %u.%u.0.1 a %u.%u.255.254", IP[0], IP[1], IP[0],IP[1]);

}else{

printf("\n ES CLASIFICACION: A\n");

if(IP[1]==0 && IP[2]==0 && IP[3]==0){

printf("IP TIPO RED.\n");

}else{

if(IP[1]==255 && IP[2]==255 && IP[3]==255){

10
printf("IP TIPO BROADCAST \n");

}else{

printf("IP TIPO HOST\n");

//asignamos mascara

MA[0]=255;

MA[1]=0;

MA[2]=0;

MA[3]=0;

printf("\n LA IP MADRE ES: " );

for(i=0; i<4;i++){

printf("%d", IP[i]& MA[i]);

printf(".");

printf("\n");

printf(" \n LA IP BROADCAST ES: " );

11
MA[0]=~MA[0];

MA[1]=~MA[1];

MA[2]=~MA[2];

MA[3]=~MA[3];

for(i=0; i<4;i++){

printf("%d", IP[i]|MA[i]);

printf(".");

printf("\n");

printf("EL RANGO DE HOST ES \n %u.0.0.1 a %u.255.255.254", IP[0], IP[0]);

return 0;

12