2010-04-21 5 views
0

У меня есть ряд traceroutes, которые мне нужно сравнивать друг с другом, но я не знаю, как это сделать, ив сказал, что хэш-карты - хорошая техника, но я не знаю, как их реализовать по моему коду.Сравнение и статистика Traceroute

до сих пор у меня есть:

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

и результат выглядит следующим образом:

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 

то, что мне нужно сделать, это сравнить этот след от другого так же, как это и искать изменения и временные разности и т. д., затем распечатайте страницу статистики.

+0

Интересно, как вы думаете, что вы узнаете из этого? Все такие вещи, как это, ставят нецелесообразную нагрузку на другие сети. – dbasnett

ответ

0

Я бы определил класс данных (TraceEntry), который инкапсулирует информацию о единичной записи: серийный номер, имя хоста, ip и длительность времени. Тогда я бы определил метод equals() в соответствии с критериями соответствия (ip, я полагаю?) И соответствующим образом реализую hashCode().

Теперь можно добавить все записи одной трассы в хэшсет, а затем отсканировать другую трассировку, ища совпадения в хэш-наборе. Всякий раз, когда совпадение найдено, вы можете проверить различия в полях, отличных от ip.

Надеюсь, я хорошо понял вашу модель сравнения.

+0

Да, это сработает, но как я могу инкапсулировать одну запись? – user268915

+0

@ ben-casey: какая часть непонятна, и вы хотите сосредоточиться? разбор текста трассировки, реализация TraceEntry или использование HashSet? –

 Смежные вопросы

  • Нет связанных вопросов^_^