Gestion d'un parc
samuel_95
Messages postés
2
Statut
Membre
-
samuel_95 Messages postés 2 Statut Membre -
samuel_95 Messages postés 2 Statut Membre -
Bonjours je me présente Freddy.
Je suis étudiant en BTS Informatique de Gestion et je fais un programme qui doit être capable de saisir et d'afficher l"adresse IP d'une machine qui se trouve dans un parc choissit ainsi que l'adresse MAC,le masque, la passerelle le 1er et 2ème serveur DNS et le Nom du NETBIOS. Mon programme doit aussi me permettre de faire une sauvegarde du parc dans un fichier "x" que je dois ouvrir lire et fermer
J'utilise un compilateur DJGPP sur DOS et mon programme se compile mais j'ai des erreurs que je n'arrive pas à résoudre SVP aidez moi Merci d'avance
Je suis étudiant en BTS Informatique de Gestion et je fais un programme qui doit être capable de saisir et d'afficher l"adresse IP d'une machine qui se trouve dans un parc choissit ainsi que l'adresse MAC,le masque, la passerelle le 1er et 2ème serveur DNS et le Nom du NETBIOS. Mon programme doit aussi me permettre de faire une sauvegarde du parc dans un fichier "x" que je dois ouvrir lire et fermer
J'utilise un compilateur DJGPP sur DOS et mon programme se compile mais j'ai des erreurs que je n'arrive pas à résoudre SVP aidez moi Merci d'avance
A voir également:
- Gestion d'un parc
- Logiciel gestion photo gratuit - Guide
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Gestion de fichiers - Télécharger - Gestion de fichiers
- Logiciel gestion parc informatique gratuit - Télécharger - Informations & Diagnostic
- Gestion planning equipe - Télécharger - Outils professionnels
1 réponse
Bonjours je me présente Freddy.
Je suis étudiant en BTS Informatique de Gestion et je fais un programme qui doit être capable de saisir et d'afficher l"adresse IP d'une machine qui se trouve dans un parc choissit ainsi que l'adresse MAC,le masque, la passerelle le 1er et 2ème serveur DNS et le Nom du NETBIOS. Mon programme doit aussi me permettre de faire une sauvegarde du parc dans un fichier "x" que je dois ouvrir lire et fermer
J'utilise un compilateur DJGPP sur DOS et mon programme se compile mais j'ai des erreurs que je n'arrive pas à résoudre SVP aidez moi Merci d'avance
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////// Projet de Carnet d'adresse IP ///////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/***************************************Gestion d'un parc machine ****************************************/
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
//Taille des champs
#define SIZE_IP 4
#define SIZE_MAC 6
#define SIZE_MASK 4
#define SIZE_NETBIOS 16
#define SIZE_PARC 100
// Definition des champs
#define MAC 1
#define IP 2
#define MASK 3
#define PASS 4
#define DNS1 5
#define DNS2 6
#define NBT 7
// Definition de type
typedef unsigned char AdrIp [SIZE_IP];
typedef unsigned char AdrMac [SIZE_MAC];
typedef unsigned char NomNetBios [SIZE_NETBIOS];
typedef struct { //structure d'une machine
char AdrMac mac;
char AdrIp ip;
char mask;
char pass;
cha dns1;
char dns2;
char NomNetBios nom;
} Machine;
typedef struct { //structure du parc
Machine CA [SIZE_PARC];
int premlib;
} Parc;
Parc;
/*******************************************Fonction d'affichage***************************************************/
void MachAff(Machine m)
{
puts("Machine :");
printf("Adresse MAC : %2x-%2x-%2x-%2x-%2x-%2x\n",m.mac[0],m.mac[1],m.mac[2],m.mac[3],m.mac[4],m.mac[5]);
printf("Adresse IP : %d.%d.%d.%d\n",m.ip[0],m.ip[1].m.ip[2],m.ip[3]);
printf("Masque : %d.%d.%d.%d\n",m.mask[0],m.mask[1].m.mask[2],m.mask[3]);
printf("Passerelle : %d.%d.%d.%d\n",m.pass[0],m.pass[1].m.pass[2],m.pass[3]);
printf("Adresse DNS 1 : %d.%d.%d.%d\n",m.dns1[0],m.dns1[1].m.dns1[2],m.dns1[3]);
printf("Adresse DNS 2 : %d.%d.%d.%d\n",m.dns2[0],m.dns2[1].m.dns2[2],m.dns2[3]);
printf("Nom NetBios : %s\n",m.nom);
puts("");
}
/********************************************Fonction de saisie*******************************************/
// Test de borne d'un octet dans un int
int isOctet (int 0)
{ return o>0 && o<256; }
//Saisie Validée d'une adresse MAC
void MacSaisie (AdrMac mac)
{
int a, b, c, d, e, f, ret;
while (1) {
printf("Adresse MAC : ");
ret=scanf("%x-%x-%x-%x-%x-%x", &a, &b, &c, &d, &e, &f);
if(ret<6) {
puts("Valeur(s) non hexadécimale(s) ou moins de 6 valeurs");
while (getchar()!='\n'); //vidage du buffer non lu par scanf
continue;
}
if (isOctet(a) && isOctet(b) && isOctet(c) && isOctet(d) && isOctet(e) && isOctet(f)) break;
else puts("Valeur(s) hors bornes (0-ff)");
}
mac[0]=(unsigned char) a; mac[1]=(unsigned char) b;
mac[2]=(unsigned char) c; mac[3]=(unsigned char) d;
mac[4]=(unsigned char) e; mac[5]=(unsigned char) f;
}
//Saisie validée d'une adresse ip
void Saisie (AdrIp ip, char mag[])
{
int a, b, c, d, ret;
while (1) {
printf(msg);
ret=scanf("%d.%d.%d.%d", &a, &b, &c, &d, &e, &f);
if (ret<4) {
puts("Format de saisie incorrecte (0_255): W.X.Y.Z");
while (getchar()!=\n; //Vidage du buffer non lu par scanf
continue;
}
if(isOctet(a) && isOctet(b) && isOctet(c) && isOctet(d))
break;
else puts("Valeur(s) hors bornes (0-ff)");
}
ip[0]=(unsigned char) a; ip[1]=(unsigned char) b;
ip[2]=(unsigned char) c; ip[3]=(unsigned char) d;
}
//Saisie d'une machine
Machine MachSaisie()
{
Machine m;
puts("Saisie d'une machine :");
MacSaisie(m.mac);
IpSaisie(m.ip, "Adresse IP : ");
IpSaisie(m.mask, "Masque : ");
IpSaisie(m.pass, "Passerelle : ");
IpSaisie(m.dns1, "Adresse DNS 1 : ");
IpSaisie(m.dns2, "Adresse DNS 2 : ");
printf("Nom NetBios : ");
while (getchar()=='\n');
fgets(m.nom, SIZE_NETBIOS, stdin);
return m;
}
/****************************************Fonction de comparaison*****************************************/
int MacCmp(AdrMac m1, AdrMac m2)
{
int i;
for(i=0; i<SIZE_MAC; i++ {
if (m1[i]<m2[i]) return -1;
if (m1[i]>m2[i]) return 1;
}
return 0;
}
int IpCmp(AdrIp ip1, AdrIp ip2)
{
int i;
for (i=0; i<SIZE_IP;i++) {
if (ip1[i]<ip2[i]) return -1;
if (ip1[i]>ip1[i]) return 1;
}
return 0;
}
//Comparaison de machine renvoyant -1,0,1 selon m1<,=> m2
int MachCmp(Machine m1, Machine m2, int champ)
{
switch(champ) {
case MAC :return MacCmp(m1.mac, m2.mac);
case IP :return IpCmp(m1.ip, m2.ip);
case MASK :return IpCmp(m1.mask, m2.mask);
case PASS :return IpCmp(m1.pass, m2.pass);
case DNS1 :return IpCmp(m1.dns1, m2.dns1);
case DNS2 :return IpCmp(m.1dns2, m2.dns);
case NBT :return strcmp(m.1nom, m2.nom);
default :fpyts("ERREUR CHAMP MachCmp", stderr);
exit(1);
}
}
///////////////////////////////////////
//////////Fonction de gestion sur fichiers
void RestaureParc(Parc pv, char NomFichier[])
{
int desc, i=0;
if (desc=open (NomFichier, O_RDONLY))==-1= {
fprintf(stderr, "Erreur ouverture de fichier %s\n", NomFichier);
exit(1);
}
read(desc, &premlib,sizeof(int));
read(desc, p.CA, p.premlib*sizeof(Machine));
premlib--;
close(desc);
}
void SauveParc(Parc pv, char NomFichier[])
{
int desc, i=0;
if ((desc=open(NomFichier, O_WRONLY| O_CREAT | O_TRUNC))==-1) {
fprintf(stderr, "Erreur ouverture de fichier %s\n", NomFichier);
exit(1);
}
p.premlib++;
write(desc, &p.premlib,sizeof(int));
write(desc, p.CA, p.premlib*sizeof(Machine));
p.premlib--;
close(desc);
}
int main()
{
Machine m;
m=MachSaisie();
puts("");
MachAff(m);
Je suis étudiant en BTS Informatique de Gestion et je fais un programme qui doit être capable de saisir et d'afficher l"adresse IP d'une machine qui se trouve dans un parc choissit ainsi que l'adresse MAC,le masque, la passerelle le 1er et 2ème serveur DNS et le Nom du NETBIOS. Mon programme doit aussi me permettre de faire une sauvegarde du parc dans un fichier "x" que je dois ouvrir lire et fermer
J'utilise un compilateur DJGPP sur DOS et mon programme se compile mais j'ai des erreurs que je n'arrive pas à résoudre SVP aidez moi Merci d'avance
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////// Projet de Carnet d'adresse IP ///////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/***************************************Gestion d'un parc machine ****************************************/
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
//Taille des champs
#define SIZE_IP 4
#define SIZE_MAC 6
#define SIZE_MASK 4
#define SIZE_NETBIOS 16
#define SIZE_PARC 100
// Definition des champs
#define MAC 1
#define IP 2
#define MASK 3
#define PASS 4
#define DNS1 5
#define DNS2 6
#define NBT 7
// Definition de type
typedef unsigned char AdrIp [SIZE_IP];
typedef unsigned char AdrMac [SIZE_MAC];
typedef unsigned char NomNetBios [SIZE_NETBIOS];
typedef struct { //structure d'une machine
char AdrMac mac;
char AdrIp ip;
char mask;
char pass;
cha dns1;
char dns2;
char NomNetBios nom;
} Machine;
typedef struct { //structure du parc
Machine CA [SIZE_PARC];
int premlib;
} Parc;
Parc;
/*******************************************Fonction d'affichage***************************************************/
void MachAff(Machine m)
{
puts("Machine :");
printf("Adresse MAC : %2x-%2x-%2x-%2x-%2x-%2x\n",m.mac[0],m.mac[1],m.mac[2],m.mac[3],m.mac[4],m.mac[5]);
printf("Adresse IP : %d.%d.%d.%d\n",m.ip[0],m.ip[1].m.ip[2],m.ip[3]);
printf("Masque : %d.%d.%d.%d\n",m.mask[0],m.mask[1].m.mask[2],m.mask[3]);
printf("Passerelle : %d.%d.%d.%d\n",m.pass[0],m.pass[1].m.pass[2],m.pass[3]);
printf("Adresse DNS 1 : %d.%d.%d.%d\n",m.dns1[0],m.dns1[1].m.dns1[2],m.dns1[3]);
printf("Adresse DNS 2 : %d.%d.%d.%d\n",m.dns2[0],m.dns2[1].m.dns2[2],m.dns2[3]);
printf("Nom NetBios : %s\n",m.nom);
puts("");
}
/********************************************Fonction de saisie*******************************************/
// Test de borne d'un octet dans un int
int isOctet (int 0)
{ return o>0 && o<256; }
//Saisie Validée d'une adresse MAC
void MacSaisie (AdrMac mac)
{
int a, b, c, d, e, f, ret;
while (1) {
printf("Adresse MAC : ");
ret=scanf("%x-%x-%x-%x-%x-%x", &a, &b, &c, &d, &e, &f);
if(ret<6) {
puts("Valeur(s) non hexadécimale(s) ou moins de 6 valeurs");
while (getchar()!='\n'); //vidage du buffer non lu par scanf
continue;
}
if (isOctet(a) && isOctet(b) && isOctet(c) && isOctet(d) && isOctet(e) && isOctet(f)) break;
else puts("Valeur(s) hors bornes (0-ff)");
}
mac[0]=(unsigned char) a; mac[1]=(unsigned char) b;
mac[2]=(unsigned char) c; mac[3]=(unsigned char) d;
mac[4]=(unsigned char) e; mac[5]=(unsigned char) f;
}
//Saisie validée d'une adresse ip
void Saisie (AdrIp ip, char mag[])
{
int a, b, c, d, ret;
while (1) {
printf(msg);
ret=scanf("%d.%d.%d.%d", &a, &b, &c, &d, &e, &f);
if (ret<4) {
puts("Format de saisie incorrecte (0_255): W.X.Y.Z");
while (getchar()!=\n; //Vidage du buffer non lu par scanf
continue;
}
if(isOctet(a) && isOctet(b) && isOctet(c) && isOctet(d))
break;
else puts("Valeur(s) hors bornes (0-ff)");
}
ip[0]=(unsigned char) a; ip[1]=(unsigned char) b;
ip[2]=(unsigned char) c; ip[3]=(unsigned char) d;
}
//Saisie d'une machine
Machine MachSaisie()
{
Machine m;
puts("Saisie d'une machine :");
MacSaisie(m.mac);
IpSaisie(m.ip, "Adresse IP : ");
IpSaisie(m.mask, "Masque : ");
IpSaisie(m.pass, "Passerelle : ");
IpSaisie(m.dns1, "Adresse DNS 1 : ");
IpSaisie(m.dns2, "Adresse DNS 2 : ");
printf("Nom NetBios : ");
while (getchar()=='\n');
fgets(m.nom, SIZE_NETBIOS, stdin);
return m;
}
/****************************************Fonction de comparaison*****************************************/
int MacCmp(AdrMac m1, AdrMac m2)
{
int i;
for(i=0; i<SIZE_MAC; i++ {
if (m1[i]<m2[i]) return -1;
if (m1[i]>m2[i]) return 1;
}
return 0;
}
int IpCmp(AdrIp ip1, AdrIp ip2)
{
int i;
for (i=0; i<SIZE_IP;i++) {
if (ip1[i]<ip2[i]) return -1;
if (ip1[i]>ip1[i]) return 1;
}
return 0;
}
//Comparaison de machine renvoyant -1,0,1 selon m1<,=> m2
int MachCmp(Machine m1, Machine m2, int champ)
{
switch(champ) {
case MAC :return MacCmp(m1.mac, m2.mac);
case IP :return IpCmp(m1.ip, m2.ip);
case MASK :return IpCmp(m1.mask, m2.mask);
case PASS :return IpCmp(m1.pass, m2.pass);
case DNS1 :return IpCmp(m1.dns1, m2.dns1);
case DNS2 :return IpCmp(m.1dns2, m2.dns);
case NBT :return strcmp(m.1nom, m2.nom);
default :fpyts("ERREUR CHAMP MachCmp", stderr);
exit(1);
}
}
///////////////////////////////////////
//////////Fonction de gestion sur fichiers
void RestaureParc(Parc pv, char NomFichier[])
{
int desc, i=0;
if (desc=open (NomFichier, O_RDONLY))==-1= {
fprintf(stderr, "Erreur ouverture de fichier %s\n", NomFichier);
exit(1);
}
read(desc, &premlib,sizeof(int));
read(desc, p.CA, p.premlib*sizeof(Machine));
premlib--;
close(desc);
}
void SauveParc(Parc pv, char NomFichier[])
{
int desc, i=0;
if ((desc=open(NomFichier, O_WRONLY| O_CREAT | O_TRUNC))==-1) {
fprintf(stderr, "Erreur ouverture de fichier %s\n", NomFichier);
exit(1);
}
p.premlib++;
write(desc, &p.premlib,sizeof(int));
write(desc, p.CA, p.premlib*sizeof(Machine));
p.premlib--;
close(desc);
}
int main()
{
Machine m;
m=MachSaisie();
puts("");
MachAff(m);