EXECUTER COMMANDE PING [DEV-CPP]

cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 - 28 déc. 2002 à 10:58
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 6 août 2007 à 06:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10221-executer-commande-ping-dev-cpp

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 août 2007 à 06:14
xave4552 Messages postés 53 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 24 février 2018 1
6 août 2007 à 01:41
Salut je suis totalement newbi en c++ je suis ariver a comprendre presque tout le programe mais g une ligne qui me pause problem esque kelkin pourait me la decrir svp
cet ligne est:
strcat (commande, " -n 1 > temp");
KeZyX Messages postés 5 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 7 juin 2007
29 mai 2007 à 12:14
Salut.Voila,ton prog me plait bien mais je voudrais pouvoir tapper n'importe quelle adresse IP a l'aide d'un scanf.
Mais alors allez savoir pourquoi je n'y arrive pas,j'ai un probleme avec les strcpy je pense car au moment ou je tappe l'adresse et que je la valide,le prog se coupe et j'ai le droit au rapport d'erreures^^.
Quelqu'un pourrait-il m'aider?
iznotek Messages postés 1 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 18 juillet 2006
18 juil. 2006 à 22:40
tip, top ton prog et malin
(pour ceux qui ne comprenne pas le prog à la premiere lecture: revision du C avec marabout!)
pour gagner du temps, on peut rajoute apres -n 1 : -w 100 ou moins
sur un "bon" reseaux local un ping repond en moins de 10ms e donc en 100 on sai deja que c'est foutu!
a tchaou
arthiolis Messages postés 4 Date d'inscription samedi 5 février 2005 Statut Membre Dernière intervention 8 octobre 2005
25 avril 2006 à 17:59
Bonjour

malgré ce que certains peuvent dire ( ui je sais que c'était pour améliorer ) mais je trouve ta source sympathique, et je vais sûrement m'en inspirer je pense pour un pti programme java qui ferait appelle à cette application que tu donnes. Bon on pourrait dire que la méthode est pas optimisée mais bon je le dis pas car je fais les même choses donc... Sinon j'ai mis longtemps pour comprendre comment tu lisais le temp alors que je voyais pas comment il était rempli mais ca y est j'ai trouvé.

Bonne journée les gens.
5h33ck0n Messages postés 4 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 26 avril 2004
20 avril 2004 à 18:22
voila, jai utilisé la source, en changeant bien le system() par le ShellExecute et ca me donne ca =>

int ping ( char ip [ 17 ] )
{
int result = 0; // declare result et l'initialise à 0

FILE * temp1 = fopen ( "Y:\\Textile\\PingTextile v9\\ping\\pingping.bat" , "w+" );

char commande [ 45 ]; // tableau contenant la commande a envoyer
strcpy ( commande , "ping " ); //
strcat ( commande , ip ); // insertion de l'ip envoyé en parametre dans la commande
strcat ( commande , " -n 1 -i 1 -w 1 > temp1" ); // insertion des paramètres envoyé avec la commande ping

fwrite( commande , sizeof ( char ) , 45 , temp1 );
fclose ( temp1 );

ShellExecute ( NULL , "open" , "Y:\\Textile\\PingTextile v9\\ping\\pingping.bat" , "" , "" , SW_HIDE );

//Sleep ( 200 );

FILE * temp2 = fopen ( "Y:\\Textile\\PingTextile v9\\ping\\temp1" , "r" ); // declare un pointeur temp2 sur le fichier temp1
char test [ 50 ]; // declaration d'un tableau test
while ( !feof ( temp2 )) // on parcour le fichier
{
fscanf ( temp2 , "%s" , test ); // récupére une chaine qui correspond a un mot
if ( strcmp ( test , "octets=32" ) == 0 ) // si ce mot vaut octets=32, on défini result à 1
{
result = 1;
}
}
fclose ( temp2 ); // ferme temp2

return result; // on retourne la valeur de result
}



mais le pb cé kan je fait un apel a cette fonction ping a l'aide de ca (je suis en MFC) =>

void CPingDlg::OnPC1()
{
char ip [ 17 ];
strcpy ( ip , "192.168.100.11" );
int result = ping ( ip ); // envoi 'ip' en parametre à la fonction ping

if ( result 0) // affiche Offline si result 0
{
m_result1 = "Offline";
}
else
{
if ( result 1) // affiche Online si result 1
{
m_result1 = "Online";
}
}

UpdateData ( FALSE );
}

et ben, je suis obligé de cliké 2 foi sur le bouton, pour avoir le vrai resultat ! il doit il y avoir un pb de "Updatedata" mais je voi pa ou ! (je me sui pa trompé sous MFC, jai bien mi le truc dan OnClik et pa OnDoubleClik) !! voila voila !!

merci davance !!
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
28 oct. 2003 à 19:21
Bon, j’ai un peux galéré pour amélioré ton prog.

Remplace :
system(commande);
par :
ShellExecute(0,"open",commande,0,0,SW_NORMAL);

Une autre question, ci on tape sur la fenêtre MS-DOS :
C:ping XXX.XXX.XXX.XXX –n 1

Durée approximative des boucles en millisecondes :
Minimum 0ms, maximum0ms, Moyenne = 0ms

C’est tu récupérer ces informations, on obtiendrai la valeur du PING

Merci
cs_Funcky Messages postés 59 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 11 mai 2006
28 oct. 2003 à 09:01
A mon avis en utilisant les thread avec la fonction fork() il doit y avoir moyen, mais je ne serais aps t'aider beaucoup plus que ca ...
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
27 oct. 2003 à 23:20
Ton programme me plaît vraiment beaucoup, sauf que ça ouvre une fenêtre MS-DOS, il y a-t-il un moyen, une autre façon pour qu’elle n’apparaisse pas, ou une autre fonction que « system » ?
Car ma source est en WiIN32
Merci
cs_Funcky Messages postés 59 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 11 mai 2006
27 oct. 2003 à 20:00
Je ne m'occupe pas du temps, je regarde juste si l'ordi distant répond .. Si il répond, result vaut 1, si il ne répond pas, il vaut 0 ...
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
27 oct. 2003 à 18:50
Comme c’est mon 1er programme PING, je ne comprends pas bien tout DSL.

Donc, STP pourrais tu me donner quelle que explications.
Pourquoi tu ouvres ce fichier, tu ne l’envois pas pour savoir combien de temps cela a pris ?
J’obtiens result = 1, pourquoi ?

Merci Bcp
cs_HotSpot Messages postés 51 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 28 octobre 2004
3 mai 2003 à 16:05
Fo dire qu'elle est pas si compliqué que ca ... les explications ne sont pas requise...
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
21 févr. 2003 à 11:48
arf elle est bien ta sources mais ya aucunes explications :(
cs_Funcky Messages postés 59 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 11 mai 2006
28 déc. 2002 à 11:08
Merci, jevais regarder ca ...
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
28 déc. 2002 à 10:58
Deux liens qui vont certainement d'intéresser (il faut s'enregistrer sur le site pour télécharger les fichiers) :

http://www.codeproject.com/internet/winping.asp
http://www.codeproject.com/internet/cping.asp
Rejoignez-nous