2010-04-21 20 views
0

J'ai un certain nombre de traceroutes que j'ai besoin de comparer les uns contre les autres mais je ne connais pas la meilleure façon de le faire, on m'a dit que les cartes de hachage sont une bonne technique mais je ne sais pas comment les implémenter sur mon code.Traceroute comparaison et statistiques

jusqu'à présent j'ai:

FileInputStream fstream = new FileInputStream("traceroute.log"); 


// Get the object of DataInputStream 

DataInputStream in = new DataInputStream(fstream); 
BufferedReader br = new BufferedReader(new InputStreamReader(in)); 

String strLine; 


// reads lines in 
while ((strLine = br.readLine()) != null) { 

System.out.println(strLine); 

et la sortie ressemble à ceci:

Wed Mar 31 01:00:03 BST 2010 

traceroute to www.bbc.co.uk (212.58.251.195), 30 hops max, 40 byte packets 
1 139.222.0.1 (139.222.0.1) 0.873 ms 1.074 ms 1.162 ms 
2 core-from-cmp.uea.ac.uk (10.0.0.1) 0.312 ms 0.350 ms 0.463 ms 
3 ueaha1btm-from-uea1 (172.16.0.34) 0.791 ms 0.772 ms 1.238 ms 
4 bound-from-ueahatop.uea.ac.uk (193.62.92.71) 5.094 ms 4.451 ms 4.441 ms 
5 gi0-3.norw-rbr1.eastnet.ja.net (193.60.0.21) 4.426 ms 5.014 ms 4.389 ms 
6 gi3-0-2.chel-rbr1.eastnet.ja.net (193.63.107.114) 6.055 ms 6.039 ms * 
7 lond-sbr1.ja.net (146.97.40.45) 6.994 ms 7.493 ms 7.457 ms 
8 so-6-0-0.lond-sbr4.ja.net (146.97.33.154) 8.206 ms 8.187 ms 8.234 ms 
9 po1.lond-ban4.ja.net (146.97.35.110) 8.673 ms 6.294 ms 7.668 ms 
10 bbc.lond-sbr4.ja.net (193.62.157.178) 6.303 ms 8.118 ms 8.107 ms 
11 212.58.238.153 (212.58.238.153) 6.245 ms 8.066 ms 6.541 ms 
12 212.58.239.62 (212.58.239.62) 7.023 ms 8.419 ms 7.068 ms 

ce que je dois faire est de comparer cette trace contre un autre comme et rechercher les changements et les différences de temps, etc, puis imprimer une page de statistiques.

+0

Je me demande ce que vous pensez que vous apprendrez de cela? Tout ce genre de choses est de mettre une charge non intentionnelle sur les autres réseaux. – dbasnett

Répondre

0

Je voudrais définir une classe de données (TraceEntry) qui encapsule une seule information d'entrée: numéro de série, nom d'hôte, IP et durées de temps. Ensuite, je définirais la méthode equals() en fonction des critères de correspondance (ip je suppose?), Et implémenterait hashCode() en conséquence.

Maintenant, il est possible d'ajouter toutes les entrées d'une trace dans un hashset, puis d'analyser l'autre trace, en recherchant des correspondances dans le hashset. Chaque fois qu'une correspondance est trouvée, vous pouvez vérifier les différences dans les champs autres que l'ip. J'espère avoir bien compris votre modèle de comparaison.

+0

ouais cela fonctionnerait, mais comment encapsuler une seule entrée? – user268915

+0

@ ben-casey: quelle partie n'est pas claire et sur laquelle vous voulez vous concentrer? l'analyse du texte de trace, l'implémentation de TraceEntry ou l'utilisation du HashSet? –