Сравнение и статистика трассировки - PullRequest
0 голосов
/ 21 апреля 2010

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

пока у меня есть:

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

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

1 Ответ

0 голосов
/ 21 апреля 2010

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

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

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

...