Ping en C

Fermé
jfs Messages postés 21 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 8 juin 2005 - 1 mai 2005 à 20:48
 SKZ - 6 mai 2005 à 17:15
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

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