IP
dididu85
-
XDamienX007 Messages postés 4244 Date d'inscription Statut Membre Dernière intervention -
XDamienX007 Messages postés 4244 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je voulais essayer de faire un programme qui calcule l'adresse d'un réseau, d'une machine et de broadcast. J'y arrive en hexadecimal mais en décimal pointé je ne sais pas comment faire. J'ai essayé avec un typedef union mais sa ne marche pas. Voici mon code. Merci de votre aide
#include <stdio.h>
#include <stdlib.h>
typedef union IP
{
struct
{
unsigned char O_4;
unsigned char O_3;
unsigned char O_2;
unsigned char O_1;
} O;
unsigned long addr;
}IP;
void CalculerReseau(IP adresse, IP masque, IP *res, IP *mach, IP *broad);
int main(int argc, char *argv[])
{
union IP adresse ={0}, masque={0}, reseau ={0}, machine ={0}, broadcast ={0};
union IP *res, *mach, *broad;
puts("Saisir votre IP en decimal pointe");
scanf("%d.%d.%d.%d", &adresse.O.O_4, &adresse.O.O_3, &adresse.O.O_2, &adresse.O.O_1);
printf("%d\n", adresse.addr);
puts("Saisir votre masque en decimal pointe");
scanf("%d.%d.%d.%d", &masque.O.O_4, &masque.O.O_3, &masque.O.O_2, &masque.O.O_1);
CalculerReseau(adresse, masque, &reseau, &machine, &broadcast);
printf("Votre adresse reseau est %d.%d.%d.%d\nVotre numero de machine est le %d\nL'adresse de diffusion de ce reseau est %d.%d.%d.%d\n\n", reseau.O.O_1, reseau.O.O_2, reseau.O.O_3, reseau.O.O_4, machine.O.O_4, broadcast.O.O_1, broadcast.O.O_2, broadcast.O.O_3, broadcast.O.O_4);
system("PAUSE");
return 0;
}
void CalculerReseau(IP adresse, IP masque, IP *res, IP *mach, IP *broad)
{
printf("%d\n%d", adresse.addr, masque.addr);
(*res).addr = adresse.addr & masque.addr;
(*mach).addr = adresse.addr & ~masque.addr;
(*broad).addr = adresse.addr | ~(masque.addr);
}
#include <stdio.h>
#include <stdlib.h>
typedef union IP
{
struct
{
unsigned char O_4;
unsigned char O_3;
unsigned char O_2;
unsigned char O_1;
} O;
unsigned long addr;
}IP;
void CalculerReseau(IP adresse, IP masque, IP *res, IP *mach, IP *broad);
int main(int argc, char *argv[])
{
union IP adresse ={0}, masque={0}, reseau ={0}, machine ={0}, broadcast ={0};
union IP *res, *mach, *broad;
puts("Saisir votre IP en decimal pointe");
scanf("%d.%d.%d.%d", &adresse.O.O_4, &adresse.O.O_3, &adresse.O.O_2, &adresse.O.O_1);
printf("%d\n", adresse.addr);
puts("Saisir votre masque en decimal pointe");
scanf("%d.%d.%d.%d", &masque.O.O_4, &masque.O.O_3, &masque.O.O_2, &masque.O.O_1);
CalculerReseau(adresse, masque, &reseau, &machine, &broadcast);
printf("Votre adresse reseau est %d.%d.%d.%d\nVotre numero de machine est le %d\nL'adresse de diffusion de ce reseau est %d.%d.%d.%d\n\n", reseau.O.O_1, reseau.O.O_2, reseau.O.O_3, reseau.O.O_4, machine.O.O_4, broadcast.O.O_1, broadcast.O.O_2, broadcast.O.O_3, broadcast.O.O_4);
system("PAUSE");
return 0;
}
void CalculerReseau(IP adresse, IP masque, IP *res, IP *mach, IP *broad)
{
printf("%d\n%d", adresse.addr, masque.addr);
(*res).addr = adresse.addr & masque.addr;
(*mach).addr = adresse.addr & ~masque.addr;
(*broad).addr = adresse.addr | ~(masque.addr);
}
A voir également:
- IP
- Ethernet n'a pas de configuration ip valide - Guide
- Télévision ip - Guide
- Comment connaître son adresse ip - Guide
- Ip local - Guide
- Adresse ip - Guide