2010-04-21 49 views
0

我有一些traceroute,我需要對彼此進行比較,但我不知道最好的方法來做到這一點,我被告知哈希映射是一種很好的技術,但我不知道如何實現它們在我的代碼上。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 2010-05-17 13:31:31

回答

0

我將定義一個數據類(TraceEntry),它封裝了單個條目信息:序列號,主機名,IP和持續時間。然後我會根據匹配標準(ip我想 - )來定義equals()方法,並相應地實現hashCode()。

現在,可以將一個跟蹤的所有條目添加到哈希集中,然後掃描另一個跟蹤,在哈希集中查找匹配。無論何時發現匹配,您都可以檢查ip以外的字段的差異。

我希望我能很好地理解你的比較模型。

+0

是的,這將工作,但我如何封裝一個單一的條目? – user268915 2010-04-21 17:06:47

+0

@ ben-casey:哪一部分不清晰,你想關注?解析跟蹤文本,執行TraceEntry或使用HashSet? – 2010-04-21 17:40:18