Rechercher : dans
Par :

[C]Traceroute en parallèle

Dernière réponse le 16 jun 2008 à 19:35:06 Prince, le 11 mai 2006 à 10:48:58 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [C]Traceroute en parallèle » dans :
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Compiler du C sous Linux/UNIX VoirSous Linux, le compilateur de C est gcc. Il est installé de base sur plusieurs distributions, mais sur Debian (et celles qui en découlent) il faudra l'installer (aptitude install gcc). gcc Syntaxe de GCC gcc Tout d'abord, il faut savoir...
Télécharger Visual C++ Express VoirVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Processeur VoirPrésentation Le processeur (CPU, pour Central Processing Unit, soit Unité Centrale de Traitement) est le cerveau de l'ordinateur. Il permet de manipuler des informations numériques, c'est-à-dire des informations codées sous forme binaire, et...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...

1

Char Snipeur, le 11 mai 2006 à 12:36:32

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? Salutation !
Char Snipeur

Répondre à Char Snipeur

2

Prince, le 11 mai 2006 à 14:11:00

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...

Répondre à Prince

3

Prince, le 12 mai 2006 à 10:08:48

Bonjour,

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

Répondre à Prince

4

Prince, le 12 mai 2006 à 19:22:13

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] );
}

Répondre à Prince

5

Prince, le 13 mai 2006 à 12:56:29

Bonjour,

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

Merci

Répondre à Prince

7

 maxidoh, le 16 jun 2008 à 19:35:06

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

Répondre à maxidoh

6

Char Snipeur, le 15 mai 2006 à 11:25:39

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. Salutation !
Char Snipeur

Répondre à Char Snipeur
Collection CommentÇaMarche.net