Foro de elhacker.net

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
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX=4;
  7. typedef int ip[MAX];
  8.  
  9. void direccion_ip();
  10. bool validar_ip(ip miip);
  11. void tipo_ip(ip miip);
  12. void mostrar_ip(ip miip);
  13.  
  14. int main()
  15. {
  16. direccion_ip();
  17. system("pause");
  18. }
  19.  
  20. void direccion_ip()
  21. {
  22. ip miip;
  23. cout<<"Ingrese direccion ip"<<endl;
  24. for(int i=0;i<MAX;i++){
  25. cin>>miip[i];
  26. }
  27. if(validar_ip(miip)==true)
  28. tipo_ip(miip);
  29. else
  30. cout<<"La ip ingresada no es valida"<<endl;
  31. mostrar_ip(miip);
  32. }
  33.  
  34. bool validar_ip(ip miip)
  35. {
  36. bool validado=true;
  37. for(int i=0;i<MAX;i++){
  38. if(miip[i]<0 || miip[i]>255){
  39. validado=false;
  40. }
  41. }
  42. return validado;
  43. }
  44.  
  45. void tipo_ip(ip miip)
  46. {
  47. if(miip[0]==10 && miip[1]>=0 && miip[1]<=255 && miip[2]>=0 && miip[2]<=255 && miip[3]>=0 && miip[3]<=255){
  48. cout<<"Clase A"<<endl;
  49. }
  50. else
  51.         if(miip[0]==172 && miip[1]>=16 && miip[1]<=31 && miip[2]>=0 && miip[2]<=255 && miip[3]>=0 && miip[3]<=255){
  52.   cout<<"Clase B"<<endl;
  53.         }
  54. else
  55.            if(miip[0]==192 && miip[1]==168 && miip[2]>=0 && miip[2]<=255 && miip[3]>=0 && miip[3]<=255){
  56.  cout<<"Clase C"<<endl;
  57.            }
  58. else
  59.               cout<<"No pertenece a ninguna clase."<<endl;
  60. }
  61.  
  62. void mostrar_ip(ip miip)
  63. {
  64. for(int i=0;i<MAX;i++){
  65. cout<<miip[i];
  66. if(i<MAX-1){
  67. cout<<".";
  68. }
  69. }
  70. cout<<endl;
  71. }
  72.