[C]Traceroute en parallèle

Fermé
Prince - 11 mai 2006 à 10:48
 maxidoh - 16 juin 2008 à 19:35
Bonjour,

je dois écrire un programme permettant de lancer plusieurs traceroute et de mettre le résultat dans un fichier.
Dans ce fichier, doit seulement apparaitre les adresses ip obtenues et ces adresses doivent être ordonnées suivant suivant leur distance minimales.

Pour ce qui est du lancement d'un traceroute, je n'ai pas de problème pour la récupération des adresses ip.

Mon problème se trouve lorsque plusieurs sont lancés, je ne sais pas comment m'y prendre pour avoir les ip comme il est demandé.

Si quelqu'un pouvait m'aider?

Merci par avance.

PS : Si vous ne comprenez pas quelque chose dites le

5 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
11 mai 2006 à 12:36
Salut.
Je pense que tu n'es pas clair sur un point. Tu lance ton traceroute sur IP1,IP2,IP3. Pour chacun des trois IP, tu obtiens une route, que je note IP1.1 à IP1.5(par ex).
Doit tu sortir un fichier avec : (ordonnée du plus proche au plus loin)
IP1.1
IP2.2
IP1.2
IP3.1
etc...
ou juste la liste ordonnée pour chaque IP?
0
Salut,

c'est ça, il doit être ordonné du plus proche au plus loin.

Pour chaque traceroute,il faut pouvoir connaitre ses voisins ainsi que sa distance minimale à l'origine

Exemple :
Il faut récupérer les données de traceroute et les
analyser... (extraire l'adresse IP)

Ensuite, on trace une première branche (Les lettres représentes des
adresses IP)

traceroute X
A
B
C
X

A -> B -> C -> X

Puis on la complète...

traceroute Y
A
B
E
G
Y

A -> B -> C -> X
+ -> E -> G -> Y

traceroute Z
A
B
C
H
Z

A -> B -> C -> X
| + -> H -> Z
+ -> E -> G -> Y

etc...
0
Bonjour,

personne n'a d'idées sur mon problème?
0
Bonjour,

J'ai fait ceci pour l'envoi des traceroute, j'aurais maitenant besoin d'aide pour le traitement des résultats.

Est-ce que quelqu'un pourrait m'aider?

Merci par avance

int nb_ip; /* nombre d'adresses IP à tracerouter */
char **target_ip; /* adresses IP à tracerouter */

char cmd[128]; /* la commande "traceroute <adresse IP>" à effectuer */
FILE **traceroute /* les résultats des commandes traceroute */

int i;

/* ajouter toutes les bonnes initialisations / allocations */

/* lancement des commandes traceroute dans des processus fils */
for( i=0 ; i<nb_ip ; ++i )
{
  snprintf( cmd, 128, "traceroute %s", target_ip[i] ); /* construction de la commande à exécuter */
  traceroute[i] = popen( cmd, "r" );
  if( !traceroute[i] )
  {
    perror( "traceroute" );
    /* gestion de l'erreur */
  }
}

/* traitement des résultats des traceroute */
/* ... */

/* fermeture des tuyaux */
for( i=0 ; i<nb_ip ; ++i )
{
  pclose( traceroute[i] );
}
0
Bonjour,

est-ce que quelqu'un pourrait m'indiquer comment récupérer les donnés des différents traceroute.

Merci
0
Salut,j'ai pour projet exactement la même chose.Envoie moi ton code en entier pour que je puisse voir
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
15 mai 2006 à 11:25
Salut.
Tu as été voir là ?
http://msdn.microsoft.com/library/en-us/vccore98/html/_crt__popen.2c_._wpopen.asp
tu peux récupérer les flux de traceroute grace à fgets apparemment.
0