Ir ao conteúdo

Gabriel Fernandes_712485

Membro Júnior
  • Posts

    16
  • Cadastrado em

  • Última visita

posts postados por Gabriel Fernandes_712485

  1.  

    #include <stdio.h>

    #include <stdlib.h>

    #include <string.h>

    int main()

    {

        int byte[4], b, i, x = 34;

        int bytes[4], c, o, z = 34;

        int ipdecimal[4];

        char mascara_binario[36] = "";

        char ip_binario[36] = "";

        char wildcard[36] = "";

        char enderecoderede[36] = "";

        int op, d, cont, pot;

        do

        {

            printf("\n\nSeja bem vindo ao conversor de IP decimal para binario !");

            printf("\n1. Para digitar o IP e a Mascara de Rede");

            printf("\n2. Sair");

            printf("\nUsuario, por favor, digite a sua opcao: ");

            scanf("%d", &op);

            switch(op)

            {

            case 1:

                printf("\nDigite o endereco do seu IP: (XXX.XXX.XXX.XXX) ");

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

                ipdecimal[0]=byte[0];

                ipdecimal[1]=byte[1];

                ipdecimal[2]=byte[2];

                ipdecimal[3]=byte[3];

                printf("\nDigite o endereco da sua Mascara de Rede: (XXX.XXX.XXX.XXX) ");

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

                for(b = 3; b >= 0; b--) //calculo da rede em binario

                {

                    i = 8;

                    while(i--)

                    {

                        ip_binario[x--] = (byte % 2) ? '1' : '0';

                        byte /= 2;

                    }

                    if( B) ip_binario[x--] = '.';

                }

                for(c=3; c>= 0; c--) //calculo da mascara em binario

                {

                    o = 8;

                    while(o--)

                    {

                        mascara_binario[z--] = (bytes[c] % 2) ? '1' : '0';

                        bytes[c] /= 2;

                    }

                    if© mascara_binario[z--] = '.';

                }

                for(d=0 ; d<36 ; d++) //popularizando o vetor wildcard com o valor da mascara de rede

                {

                    wildcard[d]=mascara_binario[d];

                }

                for(d=0 ; d<36 ; d++) //calculando o wildcard (negação da mascara)

                {

                    if(wildcard[d] == '1')

                    {

                        wildcard[d] = '0';

                    }

                    else

                    {

                        if(wildcard[d] == '0')

                        {

                            wildcard[d] = '1';

                        }

                    }

                }

                cont=0;

                pot=0;

                for(d=28 ; d<=36 ; d++) //contador

                {

                    if(wildcard[d] == '1')

                    {

                        cont++;

                    }

                }

                pot = pow(2, cont);

                pot = pot-1;

                /*

                for(d=0 ; d<36 ; d++){

                    enderecoderede[d]=ip_binario[d]*mascara_binario[d];

                }

                */

                for(d=0 ; d<36 ; d++) // calculo de endereco de rede

                {

                    if(ip_binario[d]==mascara_binario[d])

                    {

                        enderecoderede[d]=ip_binario[d];

                    }

                    else

                    {

                        enderecoderede[d]='0';

                    }

                }

                printf("O seu ip em binario e: %s\n", ip_binario);

                printf("A sua mascara em binario e: %s\n", mascara_binario);

                printf("O seu wildcard e: %s\n", wildcard);

                printf("O seu broadcast e: %d.%d.%d.%d\n", ipdecimal[0], ipdecimal[1], ipdecimal[2], pot);

                printf("O seu endereco de rede e: %s\n", enderecoderede);

                printf("%d %d", pot, cont);

            }

        }

        while(op!=2);

    }

     

     

     

    Fiz usando uma comparação, pois multiplicando para descobrir o endereço de rede não deu certo.

    Olliver, porque utilizamos o "?" e "/="?

     

    Linha 52/53?

     

    Abraços !

  2. Boa tarde pessoal.

     

    Estou desenvolvendo em C, um código onde recebe de entrada o endereço de IP e a máscara de rede.

    Preciso retornar, o IP em binário, a máscara de rede em binário, o endereço de rede, broadcast e wildcard.

     

    Até o momento, estou transformando em binário sem problemas.

    Porém, não consigo fazer com que apareca o binário na ordem correta ao usuario.

    Necessito da ordem para calcular o endereço de rede, broadcast e wildcard.

     

    Agradeço desde já todas as ajudas.

     

    Obrigado !!

     

    ;)

    binario.txt

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!