使用Packet.Net提取HTTP标头信息

时间:2012-01-06 12:41:10

标签: c# sharppcap packet.net

我想使用Packet.Net提取HTTP头信息。我使用SharpPcap捕获数据包,需要访问TCP数据包中的User-Agent字段。如果我理解正确,Packet.Net用于分析捕获的数据包。在这方面,将不胜感激。我试图用以下代码显示TCP数据包,但我显示了字节。我使用C#作为开发语言。

       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);

   } 

1 个答案:

答案 0 :(得分:1)

Packet.Net目前没有http解码支持。因为http消息可以跨多个数据包分割,所以似乎一个好的方法是首先添加支持以允许以下tcp连接,然后在tcp数据流之上添加http会话检测和解析。尝试在每个数据包的基础上解析http数据可能适用于数据的标头或一些http消息,但不是一个强大的解决方案,因为它会阻止能够获取可能是几千字节的http消息的完整内容大小。

(我有一个基于SharpPcap / Packet.Net构建的商业库,它添加了tcp会话跟随和http会话跟随和解码。如果您希望我向您发送更多详细信息,请在此处发送您的电子邮件。)