2012-01-06 137 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会话跟踪和解码商业库。如果你要我与更多的细节向您发送电子邮件请留下您的电子邮件。)