Bonjour,
en faite,il ne faut pas coder le traceroute classique,les temps de réponse ne doivent pas être pris en compte,de même il faut utiliser seulement les adresses IP et pas les DNS.
Ce n'est pas tant le fait de programmer que je n'arrive pas mais c'est la manière dont il faut que je m'y prenne.
J'ai régardé plusieurs liens mais j'ai du mal.
Je vous met l'énoncé ce qui vous permettra peut-être de m'aiguiller.
En vous remerciant par avance
Il s'agit d'écrire un programme (ou un ensemble de programmes) permettant d'effectuer des traceroute automatiquement, en tâche de fond ; et pendant que se font ces traceroute, de rassembler des informations sur le graphe d'Internet. En particulier, pour chaque noeud du graphe (on assimilera un noeud à son adresse IP), on souhaite pouvoir connaître ses voisins, ainsi que sa distance minimale à l' « origine » (la distance n'est pas forcément constante, par exemple entre le noeud A et le noeud B, le noeud X peut apparaître en 5è position ; et le même noeud X peut apparaître en 8è position entre le noeud A et le noeud C -- c'est surprenant, mais c'est possible!).
Il est indispensable de pouvoir :
* avoir plusieurs traceroute s'effectuant simultanément, afin de rassembler des informations le plus vite possible ;
* pouvoir choisir à la volée combien de traceroute on souhaite exécuter en parallèle) ;
* ajouter de nouvelles « cibles » pour traceroute pendant que l'ensemble fonctionne ;
* ajouter des cibles « aléatoires » (en tirant des adresses IP au hasard) ;
* visualiser des statistiques indiquant le nombre d'adresses IP « explorées » (nombre total, et classement par distance par rapport à l'origine) ;
* indiquer les « voisins » d'un noeud donné par son adresse IP ;
* exporter (et importer) l'état du graphe, sous forme de deux fichiers CSV : un contenant la liste des sommets (adresses IP) avec leur distance minimale à la source, et un autre contenant une liste de couples d'adresses IP ;
* fournir un rapport expliquant les structures algorithmiques utilisées, avec une indication de leurs limites (mémoire, CPU, occupation disque...) -- c'est-à-dire une étude de la complexité des algorithmes utilisés ;
* présenter un code propre et lisible, autant que faire ce peu.
Informations techniques
Une adresse IP = 4 octets. Généralement on la représente sous la forme 134.157.0.129 (sous forme de 4 nombres entiers, en décimal, séparés par des points).
Les plages d'adresses suivantes sont « privées », c'est-à-dire internes :
* 10.0.0.0 à 10.255.255.255
* 172.16.0.0 à 172.31.255.255
* 192.168.0.0 à 192.168.255.255
La plage 224.0.0.0 à 239.255.255.255 est réservée au multicast.
Les adresses de 240.0.0.0 à 255.255.255.255 sont réservées.
Toutes ces plages (adresses privées, multicast, réservées) doivent être traitées de manière spéciale ; il est parfaitement acceptable de ne pas les stocker dans le graphe (de les considérer comme les « * » qui apparaissent parfois dans traceroute).
Le format CSV à utiliser, pour la liste des noeuds : adresse IP, distance
1.2.3.4,17
134.157.0.129,8
193.55.63.92,2
Le format CSV à utiliser, pour la liste des arêtes : adresse IP1, adresse IP2
1.2.3.4,1.2.3.5
134.157.0.129,134.157.254.1
193.55.63.1,193.55.63.29
On utilisera \n comme séparateur de lignes.


