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:
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
3 anos atrás
3 anos atrás
3 anos atrás
5 anos atrás
5 anos atrás
8 anos atrás
8 anos atrás