0

I would like to extract the HTTP header information using Packet.Net. I am using SharpPcap to capture the packet and need to access the User-Agent field in the TCP packet. If I understand correctly Packet.Net is used to analyze the packet captured. Help would be appreciated on this regard. I have tried to display the TCP packet with the following code but I get bytes displayed. I am using C# as development language.

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

   } 
4

1 回答 1

1

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

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

于 2012-02-01T16:20:50.417 回答