• Matéria: Informática
  • Autor: atilalacerda1
  • Perguntado 3 anos atrás

Olá! Preciso desenvolver um programa (Linguagem C) para classificar uma lista de IPs e verificar de qual classe pertence (a, b, c...) se é publico, privado ou desconhecido. Além do programa, preciso montar a modelagem do software utilizando um diagrama de UML. O código já foi desenvolvido e agora estou com dificuldades para desenvolver o UML. Estou pensando em utilizar a estrutura Estática UML. Alguém pode me dar um norte, por gentileza?

Segue o código do programa:
printf("✉ CLASSIFICAÇÃO DE CLASSES DE IP ✉");

printf("\n\n\n");
printf("Digite um endereco de IP (0.0.0.0): ");
scanf("%d.%d.%d.%d",&ip[0],&ip[1],&ip[2],&ip[3]);
printf("→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→\n");

if(ip[0]==0 && ip[0]==0 && ip[0]==0 && ip[0]==0)
{
printf("\n\n IP DE INICIALIZAÇÃO");
}
else if(ip[0]==127 && ip[1]==0 && ip[2]==0 && ip[3]==1)
{
printf("\n\n LOOPBACK ");
}
else if(ip[0]==127 && ip[1]<256 && ip[2]<256 && ip[3]<256)
{
printf("\n\n LOCALHOST ");
}
else if(ip[0]==255 && ip[1]==255 && ip[2]==255 && ip[3]==255)
{
printf("\n\n BROADCAST ");
}

//IPS PRIVADOS

else if(ip[0]==10 && ip[1]<256 && ip[2]<256 && ip[3]<256)
{
printf("\n\nEste IP é PRIVADO DE CLASSE A\n");

}
else if(ip[0]==172 && ip[1]>15 && ip[1]<32 && ip[2]<256 && ip[3]<256)
{
printf("\n\nEste IP é PRIVADO DE CLASSE B\n");

}
else if(ip[0]==192 && ip[1]==168 && ip[2]<256 && ip[3]<256)
{
printf("\n\nEste IP é PRIVADO DE CLASSE C\n");

}
else if(ip[0]<0 && ip[1]<0 && ip[2]<0 && ip[3]<0)
printf("\n\nATENÇÃO: Número de IP invalido!!!");

//IPS PUBLICOS

else if(ip[0]>0 && ip[0]<128 && ip[1]<256 && ip[2]<256 && ip[3]<256)
{
printf("\n\nIP de REDE PUBLICO DE CLASSE A\n");

}
else if(ip[0]>127 && ip[0]<192 && ip[1]<256 && ip[2]<256 && ip[3]<256)
{
printf("\n\nIP de REDE PUBLICO DE CLASSE B\n");

}
else if(ip[0]>191 && ip[0]<224 && ip[1]<256 && ip[2]<256 && ip[3]<256)
{
printf("\n\nIP de REDE PUBLICO DE CLASSE C\n");

}
else if(ip[0]>223 && ip[0]<240 && ip[1]<256 && ip[2]<256 && ip[3]<256)
{
printf("\n\nIP de REDE PUBLICO DE CLASSE D\n");

}
else if(ip[0]>239 && ip[0]<248 && ip[1]<256 && ip[2]<256 && ip[3]<255)
{
printf("\n\nIP de REDE PUBLICO DE CLASSE E\n");

}

//ERRO DE IP
else
printf("\n\nATENÇÃO: Número de IP invalido!!!");

printf("\n\n\n");
printf("\n→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→\n");

Respostas

respondido por: LimaMamos
2

Resposta:

n tem mt a ver com oq vc perguntou, mas dava pra otimizar o seu programa

[] dava pra encadear if's pra rodar mais rápido  

exemplo:

if(ip[0]==0)

{

 if(ip[1]==0)

 {

  if(ip[2]==0)

  {

   if(ip[3]==0)

    printf("\n\n IP DE INICIALIZAÇÃO");

  }

 }

}

[] usar for

exemplo:

-ao invés disso:

scanf("%d.%d.%d.%d",&ip[0],&ip[1],&ip[2],&ip[3]);

-dava pra fazer isso:

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

    scanf("%d",&ip[i]);

    }

Perguntas similares