Alguna forma mas facil de sacar la clase de IP?

Iniciado por Beginner Web, 29 Septiembre 2018, 01:41 AM

0 Miembros y 1 Visitante están viendo este tema.

Beginner Web

Quisiera saber si hay una forma mas facil de sacar el tipo de clasede IP teniendo en cuenta que las IP que van de 10.0.0.0 a 10.255.255.255 son de clase A, de 172.16.0.0 a 172.31.255.255 son  de clase B y de 192.168.0.0 a 192.168.255.255 son de clase C, que puedo hacer chicos soy nueva en esto

Código (cpp) [Seleccionar]
#include <iostream>
#include <stdlib.h>

using namespace std;

const int MAX=4;
typedef int ip[MAX];

void direccion_ip();
bool validar_ip(ip miip);
void tipo_ip(ip miip);
void mostrar_ip(ip miip);

int main()
{
direccion_ip();
system("pause");
}

void direccion_ip()
{
ip miip;
cout<<"Ingrese direccion ip"<<endl;
for(int i=0;i<MAX;i++){
cin>>miip[i];
}
if(validar_ip(miip)==true)
tipo_ip(miip);
else
cout<<"La ip ingresada no es valida"<<endl;
mostrar_ip(miip);
}

bool validar_ip(ip miip)
{
bool validado=true;
for(int i=0;i<MAX;i++){
if(miip[i]<0 || miip[i]>255){
validado=false;
}
}
return validado;
}

void tipo_ip(ip miip)
{
if(miip[0]==10 && miip[1]>=0 && miip[1]<=255 && miip[2]>=0 && miip[2]<=255 && miip[3]>=0 && miip[3]<=255){
cout<<"Clase A"<<endl;
}
else
         if(miip[0]==172 && miip[1]>=16 && miip[1]<=31 && miip[2]>=0 && miip[2]<=255 && miip[3]>=0 && miip[3]<=255){
   cout<<"Clase B"<<endl;
         }
else
            if(miip[0]==192 && miip[1]==168 && miip[2]>=0 && miip[2]<=255 && miip[3]>=0 && miip[3]<=255){
  cout<<"Clase C"<<endl;
            }
else
               cout<<"No pertenece a ninguna clase."<<endl;
}

void mostrar_ip(ip miip)
{
for(int i=0;i<MAX;i++){
cout<<miip[i];
if(i<MAX-1){
cout<<".";
}
}
cout<<endl;
}
7w7