Ping en C

jfs Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
 SKZ -
Bonjour,

Je dois réaliser un programme de ping en C. En fait, les adresse à pinguer sont à lire dans un fichier.
Mon progr les lit, les pingue et les retransfère les pings dans un fichier 2. C'est là qu'est le probl car j'aimerais que seules les adr ip restees sans reponse soient transferees dans le fichier 2.Malheureusement je ne sais vraiment pas comment faire. Si vous aviez une idee, ce serait super sympa. Suis debutant en C.

#include <winsock.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 
#define p 512 
#define ping "ping" 
int main() 
{ 
FILE *fichier; 
FILE *fichier2; 
char n[250], v[250]; 
char commande [p] ; 
fichier = fopen ("fichier.txt","rt"); 
fscanf(fichier, "%s\n%s\n",&n,&v); 
int atoi(char *n); 
int atoi(char *v); 
strcpy(commande, "ping "); 
strcat(commande, n); 
strcat(commande, "> fichier2.txt"); 
system (commande); 
strcpy(commande, "ping "); 
strcat(commande, v); 
strcat(commande, "> fichier2.txt"); 
system (commande); 
fclose (fichier); 
fclose (fichier2); 
exit (0); 
}

1 réponse

SKZ
 
Utilise popen(), qui crée un flux vers un processus.
Ensuite avec des scanf() ou équivalent, tu récupère les messages.

Y'a pu qu'à décrypter la chaine renvoyée pour voir si l'adresse répond.

Ceci dis, tu devrais plutot ouvrir des sockets ICMP et envoyer un packet "ECHO" vers l'adresse à tester, a moins que ce ne soit un exercice scolaire et que le prof vous ait dis d'utiliser system() avec ping.
0