2012-01-06 52 views
0

我想使用Packet.Net提取HTTP頭信息。我使用SharpPcap來捕獲數據包,並需要訪問TCP數據包中的User-Agent字段。如果我理解正確Packet.Net用於分析捕獲的數據包。這方面的幫助將不勝感激。我試圖用下面的代碼顯示TCP數據包,但我得到的字節顯示。我使用C#作爲開發語言。使用Packet.Net提取HTTP頭信息

 private static void device_OnPacketArrival(object sender,CaptureEventArgs packet){ 

     Packet p =Packet.ParsePacket(packet.Device.LinkType,packet.Packet.Data); 

     System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding(); 
     String StringMessage = ASCII.GetString(p.Bytes); 


     Console.WriteLine(StringMessage); 

    } 
+0

什麼你的意思是'我得到字節顯示'?你能提供你所看到的樣本輸出嗎? – 2012-01-06 13:43:52

+0

您也可以考慮在您的情況下使用[Pcap.Net](http://pcapdotnet.codeplex.com/),而不是SharpPcap,因爲它內置了對解析HTTP消息的支持。 – 2012-01-06 13:50:58

回答

1

Packet.Net目前不支持http解碼。由於http消息可以跨多個數據包進行分割,因此似乎一個好方法是首先添加支持以允許以下tcp連接,然後在tcp數據流之上添加http會話檢測和解析。試圖以每個數據包爲基礎解析http數據可能適用於數據頭或某些http消息,但不是一個可靠的解決方案,因爲它會阻止能夠獲取可能爲幾千字節的http消息的完整內容在尺寸方面。

(我有一個建立在SharpPcap/Packet.Net,增加了TCP會話以下和HTTP會話跟蹤和解碼商業庫。如果你要我與更多的細節向您發送電子郵件請留下您的電子郵件。)