Posez votre question Signaler

[C]Traceroute en parallèle

Prince - Dernière réponse le 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
Lire la suite 

[C]Traceroute en parallèle »

7 réponses
Réponse
+0
moins plus
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?
Prince - 11 mai 2006 à 14:11
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...
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

personne n'a d'idées sur mon problème?
Ajouter un commentaire
Réponse
+0
moins plus
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] );
}
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

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

Merci
maxidoh - 16 juin 2008 à 19:35
Salut,j'ai pour projet exactement la même chose.Envoie moi ton code en entier pour que je puisse voir
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Ce document intitulé « [C]Traceroute en parallèle » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook