Se connecter / S'enregistrer
Votre question

Ping C# ( code problem non résolut)

Tags :
  • Adresse IP
  • Programmation
Dernière réponse : dans Programmation
27 Mai 2009 09:21:59

Voila bonjours a tous ceux qui auront au moins la courtoise d'etre venu sur ce poste.... :hello: 

Voila je suis actuellement en stage dans un entreprise, et je vous arret desuite je vai pas vous demander de faire du code pour moi comme les 90% lon fait avant moi.... :pfff:  moi j'ai fait mon code et j'ai une erreur sur mon programme que je n'arrive pas a trouver....

Voila deja le code:

#include <stdio.h>
#include <stdlib.h>

int menu(){ // Création du menu.

printf("\n\n***********\n menu\n***********\n\n\n"); // Création des options du menu.
printf("1:Entrer l'adresse IP\n\n");
printf("2:Entrer Nom DNS\n\n");
printf("3: Ping sur l'adresse IP/Nom DNS\n\n");
printf("4:Sortie\n\n\n\n"); // Création de fin du menu.

int choix;
printf("\n\n Quel est votre choix : \n");
scanf("%d",&choix);
return choix;
}

int main(){ int choix;
choix=menu();


while(choix!=4){
int a,b,c,d;
char h[30];

if(choix==1){

printf("veuillez taper l'adresse IP::\n");
scanf("%d",&a);
printf(".");
scanf("%d",&b);
printf(".");
scanf("%d",&c);
printf(".");
scanf("%d",&d);
}
else if(choix==2)
{
printf("veuillez taper le Nom DSN::\n");
scanf("%s",&h);
}

else if(choix==3){int main()
{
system( ping"%d.%d.%d.%d",a,b,c,d);
getch();
}
else {printf("---------------------------------------------\n***Ce choix n'existe pas***\n Seul les choix 1, 2, 3 et 4 sont disponibles\n---------------------------------------------");
}
choix=menu();
}
system("pause");
return 0;
}



Donc si vous n'avez pas compri ce a quoi porte ce programme, il s'agit dun programme qui vous propose d'effecturer un Ping sur un reseau soit a partir d'une adresse IP soit d'une adresse DNS (www.gaalga.fr)[et oui jai pas envi de leur faire de pub :non:  ]

berf voila je block sur le ping et mon entre de la valeur dans celui ci je merxplique l'adresse ip est enregistrer grace au menu mais comment dans mon cas present faire un retour sur cette valeur?(je sais qu'en théorie se que j'ai fait, sur papier pour peut etre :sweat:  fonctionner :D 

Pour finir je suis loing de mon ecole (Avignon/toulouse) et mon prof ne me reponde plus depuis 3semaine :cry:  , je suis donc perdu donc jenvoi une petit boué de détersse....!!! :pt1cable:  :pt1cable: 

merci d'avence... ;) 

Autres pages sur : ping code problem resolut

27 Mai 2009 10:26:51

salut, tu as du se tromper dans le titre parce que c'est plutot du C que tu fais.
j'ai regardé rapide mais je vois un truc pas tellement beau la
else if(choix==3){int main()
qu'est-ce que c'est que ce main dans le main???
ensuite tu fais comme tu veux mais il serait plus simple de faire saisir l'ip entière direct et puis scanner l'ensemble mais je ne connais pas le sconsignes que tu as.
je crois qu'en virant ce main au milieu tu vas régler ton problème puisque tes variables a b c et d seront connu lorsque tu choisira le choix 3.

[#ff0c00]edit : l'erreur c'est que tu déclare à chaque tour de boucle les a b c et d donc ils sont désalloués à chaque fois et donc le ping ne les connais pas. déclare les une seule fois juste avant ton while[/#ff004c]
27 Mai 2009 10:42:49

Alors deja merci d'avoir repondu aussi vite :p  :

Pour se qui est du else if(choix==3){int main() j'ai modifier pluseur foi la structure de mon programme j'aidu oublier de modifier aussi cette partie :s je modiffierai sa...je ne l'avai pas vu.. :pt1cable: 

Pour ce qui est des consignes, j'en ai pas... je doit juste faire un programme qui ping soit via IP soit via adresse DNS ...c'est tout... :sol: 

Mais quand tu dit d'editer dierctement l'ip en une seul fois, jaurai bien aimé mais sur le coup jai pas vu comment faire en fait :sweat: 
Contenus similaires
27 Mai 2009 13:16:34

et bien je pense que ça doit marcher en laissant faire une saisie du genre 192.168.1.20 par l'utilisateur et toi tu fais un scanf("%s", &ad_ip)
et comme ça tu fais un system( ping"%s", ad_ip);
27 Mai 2009 13:35:40

Oké...je vai essayer...javai justement vu des ligne de code comportant ce code et je me demandai a quoi sa pouvai bien servir :) 

je dirai dans l'apré midi si jy suis arriver ou pas...
27 Mai 2009 13:55:39

Donc voila mon code apres le changement:

#include <stdio.h>
#include <stdlib.h>

int menu(){ // Création du menu.

printf("\n\n***********\n menu\n***********\n\n\n"); // Création des options du menu.
printf("1:Entrer l'adresse IP\n\n");
printf("2:Entrer Nom DNS\n\n");
printf("3:p ing sur l'adresse IP/Nom DNS\n\n");
printf("4:Sortie\n\n\n\n"); // Création de fin du programme.

int choix;
printf("\n\n Quel est votre choix : \n");
scanf("%d",&choix);
return choix;
}

int main(){ // Initialisation des valeur.

int choix;
choix=menu();


while(choix!=4){
int a,ad_ip;
char h[30];
if(choix==1){ // Premier choix possible

printf("veuillez taper l'adresse IP::\n");
scanf("%s", &ad_ip);
}


else if(choix==2) // Deusieme choix possible
{
int ad_ip;
printf("veuillez taper le Nom DSN::\n");
scanf("%s",&ad_ip);
}

else if(choix==3) // Troisieme choix possible
{


int ping; // Ping
system( ping"%s",ad_ip); //Adresse du ping
}
else {printf("---------------------------------------------\n***Ce choix n'existe pas***\n Seul les choix 1, 2, 3 et 4 sont disponibles\n---------------------------------------------");
}
choix=menu();
}


system("pause");
return 0;
}


mais j'ai toujour une erreur sur le ping qui ne saute pas....
(j'ai vu que dans le choix 1 et 2 jai declaré la meme variable mais vu que cest pas dans la meme acolade sa devrai etre bon ,nn?et puis meme si ne sont pas les meme j'ai quand meme l'erreur :) )
27 Mai 2009 14:03:08

tu fais un scanf de %s mais ad_ip est de type int.
%s est en fait le format pour une chaine de caractères.
donc ad_ip doit etre une chaine : char ad_ip[20];
et ad_ip doit etre déclaré AVANT le while sinon après avoir entrer ton ip et retourner au menu, tu aura une ad_ip nulle
27 Mai 2009 14:13:17

:sweat:  :sweat:  :sweat:  :sweat: 
comment jai fait pour ne pas voir sa...... :heink:  :cry: 
bon pour le fait que %s ad_ip dependd'une chaine par contre sa je savai pas :D 


je te remerci bcp!!!!! :sol: 

je vai tester sa dés maintenant.... :bounce:  :bounce: 
27 Mai 2009 14:42:28

Bon voila le code encore une fois je sais que le Ping a toujour une erreur mais sa men a deja retirer pas mal...donc merci

Dsl je sais que j'abuse mais je n'ai pas beaucous travailler en cours et je le pays aujourd hui...mais je m'y met....

#include <stdio.h>
#include <stdlib.h>

int menu(){ // Création du menu.

printf("\n\n***********\n menu\n***********\n\n\n"); // Création des options du menu.
printf("1:Entrer l'adresse IP\n\n");
printf("2:Entrer Nom DNS\n\n");
printf("3:p ing sur l'adresse IP/Nom DNS\n\n");
printf("4:Sortie\n\n\n\n"); // Création de fin du programme.

int choix;
printf("\n\n Quel est votre choix : \n");
scanf("%d",&choix);
return choix;
}

int main(){ // Initialisation des valeur.

int choix;
choix=menu();

int ad_ip;
while(choix!=4){
int a;
char ad_ip[20];
if(choix==1){ // Premier choix possible

printf("veuillez taper l'adresse IP::\n");
scanf("%s", &ad_ip) ;
}


else if(choix==2) // Deusieme choix possible
{
int ad_ip;
printf("veuillez taper le Nom DSN::\n");
scanf("%s", &ad_ip) ;
}

else if(choix==3) // Troisieme choix possible
{
/* J'ai pri la liberté ici de retirer le "int ping;" vu que sa me le noter comme erreur:s mais je ne sais pas vraiment si j'ai le droit*/
system(ping"%s",ad_ip); //Adresse du ping
}
else {printf("---------------------------------------------\n***Ce choix n'existe pas***\n Seul les choix 1, 2, 3 et 4 sont disponibles\n---------------------------------------------");
}
choix=menu();
}


system("pause");
return 0;
}
27 Mai 2009 14:52:15

tu n'abuses pas c'est le but du forum :) 
alors une petite explication :
int ad_ip;
while(choix!=4){
int a;
char ad_ip[20];
le int ad_ip n'a rien à foutre ici prend le et jette le par la fenêtre.
ensuite l'adresse ip est une chaine de caractère soit char ad_ip[20]
celle ci stocke l'adresse saisie par le user.
donc si tu la redéclare dans le while à chaque tour ce que ça va faire c'est ça : l'utilisateur choisis 1 pour taper l'adresse, il saisit puis envoi, elle est stockée dans ad_ip. ensuite tu rappelle la fonction menu qui raffiche les choix puis après le choix tu rentre à nouveau dans la boucle(sauf si tu choisis 4) et là tu fais char ad_ip[20]!!!!
donc tu réalloue une chaine de caractères de nom ad_ip c'est à dire que l'ancien ad_ip est effacé!
j'espère m'expliquer suffisamment, ton adresse doit etre déclaré une seule fois en début de main pour qu'a chaque tour de boucle elle ne soit pas effacée

edit : petit oubli, pour la variable choix tu as fais exactement la meme chose tu l'as déclaré une fois en début de main et ensuite aucune déclaration, fais la meme chose avec cette adresse
27 Mai 2009 15:06:06

Ok l'exemple de la variable choix été bien trouver...en fait je metai appercu (travaillant en double screen que je t'avais envoyer la version du code non modifier :s ou presque....mais j'avais deja changer la decraration de la chaine ad_ip [20]
de plus je me demandai la je dit que le maxi de chaine de carathere est 20 mais je peu mettre plus ou pas?(vu que selon la taille de l'adresse DNS)
27 Mai 2009 15:08:13

ah oui biensur tu met autant que tu le veux!
tiens nous au courant
27 Mai 2009 15:14:36

pas de souci merci bcp pour ces précieuse information...je posterai le code definitif et fonctionnel quand il sera fini ou que j'aurai amélioré un peu plus le programme....
sa poura peu etre servir a d'autre...qui sai :) 

merci encore une foi ;) 
4 Juin 2009 11:49:03

Voial juste histoir de donner des nexs et que ce poste ne tombe pas dans l'oublit total


jen si ici aujourd hui (je sais que j'avance pas trop vite:) ) mais je me hurte a certaines difficulté que j'ai du mal a passer...

#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>


using namespace std;

int menu(){ // Création du menu.

printf("\n\n***********\n menu\n***********\n\n\n"); // Création des options du menu.
printf("1:Entrer l'adresse IP a pinger\n\n");
printf("2:Entrer Nom DNS a pinger\n\n");
printf("3:Sortie\n\n\n\n"); // Création de fin du programme.


int choix;
printf("\n\n Quel est votre choix : \n");
scanf("%d",&choix);
return choix;
}

int main(){ // Initialisation des valeur.

int choix;
choix=menu();
char ad_ip1[20],ad_ip2[20];
char str[80];
int n;
n=0;

while(choix!=3){

if(choix==1){ // Premier choix possible

printf("veuillez taper l'adresse IP::\n");//Adresse du ping IP
scanf("%s", &ad_ip1);
int main();
strcpy (str,"ping ");
printf("%d",str);
strcat (str,"ad_ip1");
printf("%d",str);
/* system ("ping str"); */
}
else if(choix==2) // Deusieme choix possible
{
printf("veuillez taper le Nom DSN::\n");
scanf("%s", &ad_ip2);
int main();
strcpy (str,"ping ");
strcat (str,"ad_ip2");
system ("ping ""ad_ip2"); //Adresse du ping Dns
}
else if(choix==3) // Troisieme choix possible
{ }


else {
printf("---------------------------------------------\n***Ce choix n'existe pas***\n Seul les choix 1, 2, 3 et 4 sont disponibles\n---------------------------------------------");
}
choix=menu();
}
system("pause");
return 0;
}
4 Juin 2009 13:35:46

salut, tu peux détailler tes difficultés?
je vois des choses très très pas belles quand meme c'est les int main(); dans les if
le main est la fonctionprincipale exécté en premier par le prog donc qu'est-ce que c'est que cette chose?
4 Juin 2009 14:00:21

LoL,
encore une foi je m'apperçoit que j'envoi le mauvai code (ghrrr!!)

voici le bon:
(certaine faute persiste tel que les int au milieu des if)


  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. int menu(){ // Création du menu.
  10.  
  11. printf("\n\n***********\n menu\n***********\n\n\n"); // Création des options du menu.
  12. printf("1:Entrer l'adresse IP a pinger\n\n");
  13. printf("2:Entrer Nom DNS a pinger\n\n");
  14. printf("3:Sortie\n\n\n\n"); // Création de fin du programme.
  15.  
  16.  
  17. int choix;
  18. printf("\n\n Quel est votre choix : \n");
  19. scanf("%d",&choix);
  20. return choix;
  21. }
  22.  
  23. int main(){ // Initialisation des valeur.
  24.  
  25. int choix;
  26. choix=menu();
  27. char ad_ip1[20],ad_ip2[20];
  28.  
  29.  
  30. while(choix!=3){
  31.  
  32. if(choix==1){ // Premier choix possible
  33.  
  34. printf("Veuillez taper l'adresse IP a pinger::\n");//Adresse du ping IP
  35. scanf("%s", &ad_ip1);
  36. int main();
  37. system ("ping ad_ip1");
  38.  
  39. }
  40. else if(choix==2) // Deusieme choix possible
  41. {
  42. printf("Veuillez taper le Nom DSN a pinger::\n");
  43. scanf("%s", &ad_ip2);
  44. int main();
  45. system ("ping d_ip2"); //Adresse du ping Dns
  46. }
  47. else if(choix==3) // Troisieme choix possible
  48. { /*Ici fonction de fin de programme */ }
  49.  
  50.  
  51. else {
  52. printf("---------------------------------------------\n***Ce choix n'existe pas***\n Seul les choix 1, 2, 3 et 4 sont disponibles\n---------------------------------------------");
  53. }
  54. choix=menu();
  55. }
  56.  
  57. system("pause");
  58. return 0;
  59. }


Alors mon problem cest que je fait une chaine de carathere pour le ad_ip1 et ad_ip2 et que j'arrive pas a les faire apparaitre dans le

systeme ("ping [Ici normalement l'adresse IP/Dns]");

en fait quand je fait le

system ("ping ad_ip1");
ou le systeme ("ping ad_ip2");

la valeur enregistrer dans le tableau ne vien pas a la place de ad_ip1/2....

le programme affiche:
La requiet Ping n'a pas pu trouver l'hote ad_ip1.Verifier le nom et esayer à nouveau

mais l'hote devai etre 111.111.111.111 donc un petit souci^^'

Pour te/vous repondre cette chose (bien trouve ) :sweat:  essay de devenir un programme qui tourne et bien que sa me deplai totalement sil faut que je triche sur certaine regle je vai devoir le faire vu le temps quil me reste pour le mettre en fonction... :cry:  et cette idee me deplai totalemet mais bon...de plus je commence en programmation donc jai honte a le dire ce que j'envoi ici a deja fait l'objet d'une petite correction par un ami qui me retir pas mal d erreu deja :whistle: 
4 Juin 2009 16:42:11

alors là je fais du php depuis 2 mois donc je mélange un peu tout mais pour le system fais avant :
char commande[30]=strcat("ping ", ad_ip);
puis system(commande) ou system(*commande) ce genre de trucs mais j'ai vraiment du mal j'ai pas vu de pointeurs et de typage depuis longtemps.
et je relance pareil, vire ces int main dans le code c'est horrible!

allez bonne chance et n'hésites pas à reposter si je te dis de la merde
4 Juin 2009 16:51:22

lol non, non pas du tout je m'apperçoit de mes erreur au fure et a meusure...donc np apres je ne fait peu etre pas toute les modification (pk suis deja happy qu il tourne) mais bon vu que l'on me demande deja de le faire évolué, je vai etre obliger de corigé avant de crée une véritable uzine a Gaz :p  ;) 
4 Juin 2009 16:55:39

ouais fais bien gaffe parce qu'en C plus que dans un autre langage c'est vite usinagazesque
10 Juin 2009 11:31:24

Bon je suis sur le derniere parti de mon programme et je bloque un peu beaucoup, jai absolution pas vu sa en cours, j'ai fait sa (voir le code) grace a certain tuto mais je seche sur un truc, voila deja le code:
int taille_fichier;


FILE *fichier;
char *adresse;
long taille_file;
int argc;
char *argv[50];

fichier = fopen("E:\\readme.txt", "r"); //ouverture et lecture dufichier .txt
fseek(fichier,SEEK_END,0); //On fait pointer fichier vers la fin du fichier
taille_fichier=ftell(fichier); /*On met la taille du fichier dans taille_fichier (car fichier pointe vers la fin du fichier,
sa position donne le nombre d'octets pour arriver à la fin) */
fseek(fichier,SEEK_SET,0); //On refait pointer fichier au début du fichier
adresse=(char *)malloc(sizeof(char) * taille_fichier); //Allocation de temp avec la taille du fichier
fscanf(fichier, "%s", adresse);
printf("voila ce qu'il y a dans la liste Ip: %s \n", adresse); //Affichage de se que le programme trouve dans le fichier .txt
strcpy(ping,"ping ");
strcat(ping,adresse);
system(ping);
fclose(fichier);
free(adresse);//On libère adresse
return EXIT_SUCCESS;


bon je ne suis pas tres fiere de ce programme mais bon le but cest quil tourne la que jarrive a la finde mon stage et que jai encore tou la parti rapport que je doi faire donc je veu bien encore un peu d'aide....

10 Juin 2009 11:39:26

salut, alors il faudrait que tu mette le code avec les balises [CODE] parce que c'est illisible et ensuite c'est quoi ton problème exactement?des erreurs ?des trucs que tu comprend pas?
explique toi
10 Juin 2009 11:41:28

oula excusez moi erreur
10 Juin 2009 11:58:00

Oui cest vrai que je n'ai rien expliquer et que la presentation laise a désirer mdr

voila je pense que sa sera déja mieu:
  1. int taille_fichier;
  2.  
  3. FILE *fichier;
  4. char *adresse;
  5. long taille_file;
  6. int argc;
  7. char *argv[50];
  8.  
  9. fichier = fopen("E:\\readme.txt", "r" ); //ouverture et lecture dufichier .txt
  10. fseek(fichier,SEEK_END,0); //On fait pointer fichier vers la fin du fichier
  11. taille_fichier=ftell(fichier); /*On met la taille du fichier dans taille_fichier (car fichier pointe vers la fin du fichier,
  12. sa position donne le nombre d'octets pour arriver à la fin) */
  13. fseek(fichier,SEEK_SET,0); //On refait pointer fichier au début du fichier
  14. adresse=(char *)malloc(sizeof(char) * taille_fichier); //Allocation de temp avec la taille du fichier
  15. fscanf(fichier, "%s", adresse);
  16. printf("voila ce qu'il y a dans la liste Ip: %s \n", adresse); //Affichage de se que le programme trouve dans le fichier .txt
  17. strcpy(ping,"ping " );
  18. strcat(ping,adresse);
  19. system(ping);
  20. fclose(fichier);
  21. free(adresse); //On libère adresse
  22. return EXIT_SUCCESS;


Alors se bout de code a pour but tout simple re récupéré une adresse ip dans un fichier .txt et de le pinger mais le problemcest que si je veu faire sa sur une seul ip j y arrive mais la il faudrai que je puisse faire tourné mon programme en boucle cest a dire tanqu'il y a des ip enregistrer continuer les ping et si on a fini la liste on recommence...etc...(plus tard si jai le temps jy metrai une fonction, si le ping ne marche pas alors mon prog enregistrera l'ip qui na pas repondu dans un autre fichier bref la cest la mort...^^
10 Juin 2009 12:00:04

si tu veux dire tant qu'il y a des ip dans le fichier tu fais une boucle
while(!feof(fichier))
ton traitement

ça va parcourir chaque ligne et pinger chaque ip
10 Juin 2009 17:26:42

le problem cest que non justement le traitement du ip (fichier) s'arret a la premiere ip....il ne prend pas en compte les suivantes

jy ai mis des retour chario, saut de ligne etc...rien n'y fait

tu aurai une idee?
11 Juin 2009 08:21:00

et bien il y a une incompréhension : tu veux que ça parcours toutes les ip du fichier c'est bien ça?

si oui fais ce que je t'ai dis à savoir une boucle while(!feof(fichier)) qui permet de faire un traitement sur chaque ligne du fichier
11 Juin 2009 09:24:54

Alors oui en effect on parlai tout les deux de la meme chose mais on etai focaliser sur notre idée :lol: 

Serieusement jaurai essayer....je vai me contanter d'un seul ping a partir du fichier alors.... :whistle: 

je me doute bien que cest moi qui n'ai pas comprit comment utiliser se que tu ma donner vu que sa plante le programme.
Deja a la base je comprend pas bien le code que je tai donner ,vu que je l'avou bien volontier je lai pris sur le net :pfff:  et un peu modifier pour qu il marche avec le cas present :sweat: 

voila comment je lai utiliser:
  1. int choix;
  2. int argc;
  3. int taille_fichier;
  4. char *argv[30];
  5. char *adresse;
  6. char ad_ip[30],ping[50],echos[26];
  7. long taille_file;
  8.  
  9. ***************************************************************// initialisation des valeur du debut
  10.  
  11.  
  12.  
  13. else if(choix==4){ // Troisieme choix possible
  14. printf("\n\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n !! Pour arreter tout travail faite: Ctrl+C. !!\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n\n\n");
  15. printf(" Debut du ping sur les adresses enregistrer...\n\n");
  16. printf("========================================================\n\n\n");
  17.  
  18.  
  19. FILE *fichier;
  20.  
  21. while(!feof(fichier));
  22. fichier = fopen("E:\\IpListe.txt", "r"); //ouverture et lecture dufichier .txt
  23.  
  24. if(fichier==NULL) // Test de l'ouverture du fichier
  25. { printf(" -----------------------------------------------\n"); //si non ouverture, message d'erreur
  26. printf(" Erreur d'ouverture de fichier!!");
  27. printf("\n Arret de l'execution du programme...\n");
  28. printf("\n Si le problem persiste");
  29. printf("\n Contactez:\n");
  30. printf("\n **********@hotmail.fr\n");
  31. printf(" -----------------------------------------------\n");
  32.  
  33. printf("\n\n\n\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n\n\n\n\n");
  34. printf(" Merci d'avoir utiliser ce programme.\n\n\n\n\n");
  35. printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
  36. exit(1);}
  37.  
  38. else{ // si ouverture ok, exectution du programme.
  39. fseek(fichier,SEEK_END,0); //On fait pointer fichier vers la fin du fichier
  40. taille_fichier=ftell(fichier); /*On met la taille du fichier dans taille_fichier (car fichier pointe vers la fin du fichier,
  41. sa position donne le nombre d'octets pour arriver à la fin) */
  42. fseek(fichier,SEEK_SET,0); //On refait pointer fichier au début du fichier
  43. adresse=(char *)malloc(sizeof(char) * taille_fichier); //Allocation de temp avec la taille du fichier
  44. fscanf(fichier, "%s", adresse);
  45. printf("voila ce qu'il y a dans la liste Ip: %s \n", adresse); //Affichage de se que le programme trouve dans le fichier .txt
  46. strcpy(ping,"ping ");
  47. strcat(ping,adresse);
  48. system(ping);
  49. fclose(fichier);
  50. free(adresse);//On libère adresse
  51. return EXIT_SUCCESS;
  52.  
  53. printf("\n\n\n\n\n\n\n\n______________________________________________________________________________\n");
  54. }
  55. }


j'envoi le code je me dit que tu vera peu etre le truc qui foire
11 Juin 2009 09:31:35

oui ok c'est que tu ouvre le fichier après le while. le feof c'est un marqueur de fin de fichier donc tu dois oouvrir ton fichier avant et vérifier qu'il est bien ouvert puis ensuite tu fais le while.
par contre ensuite tu as des ftell et fseek byzarre je crois.
le plus simple est d'utiliser la fonction fgets qui permet de récupérer une ligne du fichier donc une adresse ip.

la structure serait donc :
ouvrir fichier
lire une ligne par fgets
tant que fichier non fini(while feof)
{
traitement sur cette adresse ip donc le ping
relire une ligne du fichier par fgets
}
autrement dit tu lis une ligne, tu vérifie que ça n'est pas la fin de fichier, si c'est pas la fin tu ping puis tu lis une autre ligne, grace à la boucle ça va vérifié si ce n'est pas la fin de fichier etc...

est-ce plus clair?
11 Juin 2009 09:50:22

ouep mais sa je ne serai pas le faire cest claire^^ pas grave je vai essayer quand meme histoire de dire que jaurai essayer mais pour linstant ce programme n'avancera pas plus....

Merci encore a toi
17 Juin 2009 10:43:44

:hello:  :hello: 

Tu aurai une corde et un tabouret??? :heink:  serieu j'en ai mar de ce programme vivement que je change.....j'avai un programme fonctionnel,etc... mais on ma demander de rajouter une simple fonction pour effacer les page precedente sur la commande dos.... :ange:  je lai fait et le programme ne fonctionne plus, meme si je retir les fonction que je venai d'implémenté (seul le choix 4 ne fonctionne plus, tu pourai regarder en 2 2,stp) jarrive en fin de stage et cest la galere...serieu sa ne pouvai pas m arriver 1 semaine avant quand "javai plus rien a faire".......... :sweat: 

  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. using namespace std;
  6.  
  7. int menu(){ // Création du menu.
  8. printf("\n=> Bonjour et bienvenu sur le Programme Ping System Rreseau [P.P.S.R] ! * \n\n\n\n\n"); // Création des options du menu.
  9. printf(" **************************************************************\n");
  10. printf(" * MENU *\n");
  11. printf(" **************************************************************\n");
  12. printf(" * -> 1: Information sur son Ip de votre ordinateur *\n");
  13. printf(" * -> 2: Entrer l'adresse IP a pinger. *\n");
  14. printf(" * -> 3: Entrer Nom DNS a pinger. *\n");
  15. printf(" * -> 4: Pinger les adresse enregistrer dans le fichier.txt *\n");
  16. printf(" * -> 5: Pinger une adress IP/Dns en boucle. *\n");
  17. printf(" **************************************************************\n\n\n\n\n\n");
  18. printf(" ***************\n");
  19. printf(" * 6: Sortie. *\n"); // Création de fin du programme.
  20. printf(" ***************\n\n");
  21.  
  22. int choix;
  23. printf("\n\n ->Quel est votre choix : \n\n\n");
  24. scanf("%d",&choix);
  25. return choix;
  26. printf("__________________________________________________________________________________________________________________\n\n\n"); }
  27. int main(){
  28. // Initialisation des valeur.
  29. int choix;
  30. int argc;
  31. int taille_fichier;
  32. int m=0;
  33. char *adresse;
  34. char *argv[30];
  35. char ad_ip[30],ping[50],echos[26];
  36. long taille_file;
  37. choix=menu();
  38. while(choix!=7){
  39. if(choix==1){
  40. printf("\n\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n !! Pour arreter tout travail faite: Ctrl+C. !!\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n\n\n");
  41. system ("ipconfig");
  42.  
  43. printf("\n\n\n\n\n\n\n\n______________________________________________________________________________\n");
  44. }
  45. else if(choix==2){ // Premier choix possible
  46. printf("\n\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n !! Pour arreter tout travail faite: Ctrl+C. !!\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n\n\n");
  47. printf("=>Veuillez taper l'adresse IP:\n");
  48. scanf("%s", &ad_ip);
  49. strcpy(ping,"ping ");
  50. strcat(ping,ad_ip);
  51. system (ping);
  52.  
  53. printf("\n\n\n\n\n\n\n\n______________________________________________________________________________\n");
  54. }
  55. else if(choix==3){ // Deusieme choix possible
  56. printf("\n\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n !! Pour arreter tout travail faite: Ctrl+C. !!\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n\n\n");
  57. printf("=>Veuillez taper le Nom Dns::\n");
  58. scanf("%s", &ad_ip);
  59. strcpy(ping,"ping ");
  60. strcat(ping,ad_ip);
  61. system (ping);
  62. printf("\n\n\n\n\n\n\n\n______________________________________________________________________________\n");
  63. }
  64. else if(choix==4){ // Troisieme choix possible
  65. printf("\n\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n !! Pour arreter tout travail faite: Ctrl+C. !!\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n\n\n");
  66. printf(" Debut du ping sur les adresses enregistrer...\n\n");
  67. printf("========================================================\n\n\n");
  68.  
  69. FILE *fichier;
  70.  
  71. fichier = fopen("E:\\reaaddme.txt", "r"); //ouverture et lecture dufichier .txt
  72. if(fichier==NULL) // Test de l'ouverture du fichier
  73. { printf(" -----------------------------------------------\n"); //si non ouverture, message d'erreur
  74. printf(" Erreur d'ouverture de fichier!!");
  75. printf("\n Arret de l'execution du programme...\n");
  76. printf("\n Si le problem persiste");
  77. printf("\n Contactez:\n");
  78. printf("\n paintball1@hotmail.fr\n");
  79. printf(" -----------------------------------------------\n");
  80. printf("\n\n\n\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n\n\n\n\n");
  81. printf(" Merci d'avoir utiliser ce programme.\n\n\n\n\n");
  82. printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
  83. exit(1);}
  84. else{ // si ouverture ok, exectution du programme.
  85. fseek(fichier,SEEK_END,m); //On fait pointer fichier vers la fin du fichier
  86. taille_fichier=ftell(fichier); /*On met la taille du fichier dans taille_fichier (car fichier pointe vers la fin du fichier,
  87. sa position donne le nombre d'octets pour arriver à la fin) */
  88. fseek(fichier,SEEK_SET,m); //On refait pointer fichier au début du fichier
  89. adresse=(char *)malloc(sizeof(char) * taille_fichier); //Allocation de temp avec la taille du fichier
  90. fscanf(fichier, "%s", adresse);
  91. printf("voila ce qu'il y a dans la liste Ip: %s \n", adresse); //Affichage de se que le programme trouve dans le fichier .txt
  92. strcpy(ping,"ping ");
  93. strcat(ping,adresse);
  94. system(ping);
  95. fclose(fichier);
  96. free(adresse);//On libère adresse
  97. return EXIT_SUCCESS;
  98. printf("\n\n\n\n\n\n\n\n______________________________________________________________________________\n");
  99. }
  100. }
  101. else if(choix==5){ // Cinquieme choix possible
  102. printf("\n\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n !! Pour arreter tout travail faite: Ctrl+C. !!\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n\n\n");
  103. printf("=>Veuillez taper l'adresse IP de l'hote a tester en boucle:\n");
  104. scanf("%s", &ad_ip);
  105. strcpy(ping ,"ping -t ");
  106. strcat(ping ,ad_ip);
  107. printf("\n>>>Pour afficher les stat faire Ctrl+Attn.<<<\n");
  108. system (ping);
  109. printf("\n\n\n\n\n\n\n\n______________________________________________________________________________\n");
  110. }
  111. else if(choix==6){ // Sixieme choix possible
  112. printf("\n\n\n\n******************************************************************************\n");
  113. printf("\n\n\n\n Merci d'avoir utiliser ce programme.\n\n\n\n\n");
  114. printf("******************************************************************************");
  115. exit(0);
  116. printf("\n\n\n\n\n\n\n\n______________________________________________________________________________\n");
  117. }
  118. else {printf("\n---------------------------------------------\n ***Ce choix n'existe pas***\n **Seul les choix 1, 2, 3, 4, 5 et 6 sont disponibles**\n---------------------------------------------\n\n\n\n");
  119. printf("\n\n\n\n\n\n\n\n______________________________________________________________________________\n");
  120. }
  121. choix=menu();
  122. }
  123. return choix;
  124. }
19 Juin 2009 11:57:23

je sais que c'st abuser se que je vai faire mais bon , cest assez important pour moi la....:D  voila je vien de poster un autre poste pk j'ai des problemes avec la lecture du fichier pour les ping donc si tu pouvai y jetter un coup d'oeil sa serai cool merci

p.s: voila le lien http://www.infos-du-net.com/forum/271397-21-lecture-fic...
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS