The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как вытащить данные из пакета?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как вытащить данные из пакета?"
Сообщение от vovik1980 Искать по авторуВ закладки on 20-Авг-02, 10:30  (MSK)
Здрасте всем зашедшим!
Требуется небольшая консультация...
Вот небольшой кусок кода от сниффера(функция обработки):

void handler(u_char *u, const struct pcap_pkthdr *hdr,const u_char *data)
{
struct ether_header *eh;
struct ip *iph;
struct tcphdr *tcph;
u_char *ptr;

//пропущен небольшой кусок кода

/*положим что у нас ip пакет с данными - как говорят в физике - в идеальных условиях*/
/*выцепляем заголовки*/
eh = (struct ether_header *)data;
iph = (struct ip *)(data+sizeof(*eh));
tcph = (struct tcphdr *)(data+sizeof(*eh)+sizeof(*iph));
/*остаются данные*/
ptr=data+sizeof(*eh)+sizeof(*iph)+sizeof(*tcph);

//пропущен кусок кода

}

Положим, что размер пакета максимальный. Допустим ловим все пакеты по порту 80. После того как убрали все заголовки, вывели данные, вот, что видим:

HTTP/1.1 200 OK
Date: Tue, 20 Aug 2002 04:31:38 GMT
Server: Apache/1.3.14 (Unix) rus/PL30.0
Connection: close
Content-Type: text/html

<html>


<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0">
<title>Ââåäåíèå â ïðîòîêîëû Internet (÷àñòü 3) </title>
</head>

и т.д. до конца данных.

Вопрос следущий: у данных есть своя структура? то есть есть ли возможность убрать заголовок


HTTP/1.1 200 OK
Date: Tue, 20 Aug 2002 04:31:38 GMT
Server: Apache/1.3.14 (Unix) rus/PL30.0
Connection: close
Content-Type: text/html

и оставить только сам код странички? Аналогично для всего остального...

Заранее спасибо всем ответившим!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Как вытащить данные из пакета?"
Сообщение от Аноним emailИскать по авторуВ закладки on 20-Авг-02, 22:44  (MSK)
>Здрасте всем зашедшим!
>Требуется небольшая консультация...
>Вот небольшой кусок кода от сниффера(функция обработки):
[...]
>После того как убрали все заголовки, вывели данные, вот, что видим:
>
>
>HTTP/1.1 200 OK
>Date: Tue, 20 Aug 2002 04:31:38 GMT
>Server: Apache/1.3.14 (Unix) rus/PL30.0
>Connection: close
>Content-Type: text/html
>
><html>
>
>
><head>
><meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
><meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0">
><title>???????? ? ????????? Internet (÷???? 3) </title>
></head>
>
>и т.д. до конца данных.
>
>Вопрос следущий: у данных есть своя структура?

Читем RFC. Заголовок состоит из текстовых строк, завершаемых
комбинацией <CR><LF>. Последняя строка пуста, т.е. содержит
только <CR><LF>.

>то есть есть ли возможность убрать заголовок
>
>
>HTTP/1.1 200 OK
>Date: Tue, 20 Aug 2002 04:31:38 GMT
>Server: Apache/1.3.14 (Unix) rus/PL30.0
>Connection: close
>Content-Type: text/html
>
>и оставить только сам код странички? Аналогично для всего остального...

Единственная проблема с определением конца данных. В HTTP 1.1 объем
посылки определяется несколькими неортогональными методами. Внимание
к заголовкам Connection, Content-Length, Transfer-Encoding.
Подробности там же в RFC.

>Заранее спасибо всем ответившим!


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Как вытащить данные из пакета?"
Сообщение от vovik1980 emailИскать по авторуВ закладки on 21-Авг-02, 06:31  (MSK)
>Читем RFC. Заголовок состоит из текстовых строк, завершаемых
>комбинацией <CR><LF>. Последняя строка пуста, т.е. содержит
>только <CR><LF>.
>
>
>Единственная проблема с определением конца данных. В HTTP 1.1 объем
>посылки определяется несколькими неортогональными методами. Внимание
>к заголовкам Connection, Content-Length, Transfer-Encoding.
>Подробности там же в RFC.
>
Если не трудно, укажите номер RFC.

Спасибо!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Как вытащить данные из пакета?"
Сообщение от Аноним emailИскать по авторуВ закладки on 21-Авг-02, 11:17  (MSK)
>Если не трудно, укажите номер RFC.

2068 (HTTP 1.1)

>Спасибо!


На здоровье.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру