Извлечение информации заголовка HTTP с помощью Packet.Net

Я хотел бы извлечь информацию заголовка HTTP с помощью Packet.Net. Я использую SharpPcap для захвата пакета, и мне нужно получить доступ к полю User-Agent в пакете TCP. Если я правильно понимаю, 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);

   } 

person Aubrey_lab    schedule 06.01.2012    source источник
comment
Что вы подразумеваете под «у меня отображаются байты»? Можете ли вы предоставить образец вывода того, что вы видите?   -  person M.Babcock    schedule 06.01.2012
comment
Вы также можете рассмотреть возможность использования в вашей ситуации Pcap.Net вместо SharpPcap, поскольку он имеет встроенную поддержку анализа HTTP. Сообщения.   -  person M.Babcock    schedule 06.01.2012


Ответы (1)


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

(У меня есть коммерческая библиотека, основанная на SharpPcap/Packet.Net, которая добавляет отслеживание сеанса tcp, отслеживание сеанса http и декодирование. Отправьте свое электронное письмо здесь, если хотите, чтобы я отправил вам электронное письмо с более подробной информацией.)

person Chris Morgan    schedule 01.02.2012