Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Beginner Web en 29 Septiembre 2018, 01:41 AM

Título: Alguna forma mas facil de sacar la clase de IP?
Publicado por: Beginner Web en 29 Septiembre 2018, 01:41 AM
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;
}