2012-07-10 70 views
0

我正在嘗試使用已經以pdml格式輸出的wireshark捕獲大數據包。然後使用lxml庫將這些捕獲加載到python中以遍歷它們。我遇到的問題是,我可以提取有關單個HTTP響應數據包的信息,然後我需要一種將其與HTTP請求數據包相關聯的方法。在大數據包捕獲中將HTTP請求與響應關聯起來

目前的解決方案我想執行的是要搜索的是相同的TCP流作爲響應的一部分的HTTP請求包,然而,這似乎是一個低效的解決問題的辦法,不必不斷分離出來的TCP流然後通過它們搜索請求數據包。

有沒有簡單的方法將響應數據包與我缺少的請求相關聯?

回答

0

我到目前爲止提出的最佳解決方案是在假定每個TCP連接只包含一個請求/響應對的情況下使用xpath。

#Get the stream index from the packet 
streamIndex = packet.xpath('proto/field[@name="tcp.stream"]')[0].attrib['show'] 
#Use that stream index to get the matching response packet 
return packet.xpath('/pdml/packet[proto/field[@name="tcp.stream" and @show="' + streamIndex + '"] and proto/field[@name="http.request.full_uri"]]')[0]