2012-01-06 6 views
0

Я хотел бы извлечь информацию заголовка HTTP с помощью Packet.Net. Я использую SharpPcap для захвата пакета и должен получить доступ к полю User-Agent в TCP-пакете. Если я правильно понимаю, Packet.Net используется для анализа захваченного пакета. Помощь будет оценена по этому поводу. Я попытался отобразить TCP-пакет со следующим кодом, но я получаю байты. Я использую C# в качестве языка разработки.Извлечь информацию заголовка HTTP с помощью Packet.Net

 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

Что вы имеете в виду под заголовком «Я получаю байты»? Можете ли вы предоставить образец вывода того, что видите? –

+0

Вы можете также рассмотреть возможность использования [Pcap.Net] (http://pcapdotnet.codeplex.com/), а не SharpPcap в вашей ситуации, потому что он имеет встроенную поддержку для анализа HTTP-сообщений. –

ответ

1

В настоящее время пакет Packet.Net не поддерживает HTTP-декодирование. Поскольку сообщения HTTP могут быть разделены на несколько пакетов, кажется, что хороший подход состоял в том, чтобы сначала добавить поддержку, чтобы разрешить следующие подключения tcp, а затем добавить обнаружение и анализ сеанса HTTP поверх потока данных tcp. Попытка разобрать данные HTTP на основе каждого пакета может работать для заголовков данных или некоторых HTTP-сообщений, но не является надежным решением, поскольку это предотвратит возможность получения полного содержимого http-сообщения, которое может быть несколько килобайт в размере.

(у меня есть коммерческая библиотека, которая основывается на SharpPcap/Packet.Net, который добавляет TCP сессию следующего и HTTP сессии следующими и декодирование. Начать свою электронную почту здесь, если вы хотите, чтобы я вам по электронной почте с большим количеством деталей.)