fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void) {
  5.  
  6. int IP[4], numeroZeri, primoZero =1;
  7. char classe;
  8. const char INVALID_CLASS = 'Z';
  9.  
  10. printf("Inserire l'indirizzo IP:\t");
  11. scanf("%d.%d.%d.%d", &IP[0], &IP[1], &IP[2],&IP[3]);
  12.  
  13. if( IP[0] >= 0 && IP[0] <= 127 )
  14. classe = 'A';
  15. else
  16. if( IP[0] >= 128 && IP[0] <= 191 )
  17. classe = 'B';
  18. else
  19. if( IP[0] >= 122 && IP[0] <= 223 )
  20. classe = 'C';
  21. else
  22. if( IP[0] >= 224 && IP[0] <= 239 )
  23. classe = 'D';
  24. else
  25. if( IP[0] <= 255 )
  26. classe = 'E';
  27. else
  28. classe = INVALID_CLASS;
  29.  
  30. if( classe == INVALID_CLASS )
  31. printf("L'indirizzo IP inserito non è valido\n");
  32. else {
  33. printf("L'indirizzo inserito è di classe %c\n", classe);
  34. printf("La rete a cui appartiene questo indirizzo e' la seguente:\t");
  35. if( classe >= 'D' )
  36. numeroZeri = 3;
  37. else
  38. numeroZeri = 'C' - classe + 1;
  39.  
  40. for( int i = 0; i < 4; i++ )
  41. if( i == 4 - numeroZeri ) {
  42. if( primoZero == 0 )
  43. printf(".0");
  44. else {
  45. printf("0");
  46. primoZero = 0;
  47. }
  48. numeroZeri--;
  49. }
  50. else
  51. printf("%d.", IP[i]);
  52. }
  53.  
  54. return 0;
  55. }
  56.  
Success #stdin #stdout 0s 4296KB
stdin
192.168.1.1
stdout
Inserire l'indirizzo IP:	L'indirizzo inserito è di classe C
La rete a cui appartiene questo indirizzo e' la seguente:	192.168.1.0