Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 24, 2011 15:00:49

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Сбор IP пакетов

Не установлен. FIN — это единичка. 24 — это PUSH и ACK.
Константы для флагов определены в самом начале http://code.google.com/p/dpkt/source/browse/trunk/dpkt/tcp.py



Офлайн

#2 Июнь 24, 2011 15:08:11

dobryak
От:
Зарегистрирован: 2011-06-10
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Сбор IP пакетов

Ага, теперь все ясно. А проверять я так понимаю можно так:

if TH_FIN == (TH_FIN & flag):
print 'Connection termination.'
Тогда еще вопрос по поводу:
Андрей Светлов
На самом деле для HTTP все чуть сложее: если клиент и сервер оба поддерживают keep-alive (http://en.wikipedia.org/wiki/HTTP_persistent_connection)
Да действительно соединение после первого HTTP запроса на сервер не рвется. Не подскажите какие есть методы как можно отследить конец HTTP ответа, для этого случая? Заранее благодарен.
то в соединении может проскочить несколько ответов. Вам нужно научиться их обрабатывать.



Отредактировано (Июнь 24, 2011 15:08:52)

Офлайн

#3 Июнь 24, 2011 17:20:19

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Сбор IP пакетов

Нужно парсить HTTP заголовки.
Заголовок ответа начинается со строки типа
HTTP/1.1 200 OK
и заканчивается двумя пустыми строками. Дальше идет ответ.
Персистентное соединение должно указывать в Content-Length длину ответа.
Этого достаточно.



Офлайн

#4 Июнь 24, 2011 18:53:56

dobryak
От:
Зарегистрирован: 2011-06-10
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Сбор IP пакетов

Андрей Светлов
Нужно парсить HTTP заголовки.
Заголовок ответа начинается со строки типа
HTTP/1.1 200 OK
и заканчивается двумя пустыми строками. Дальше идет ответ.
Персистентное соединение должно указывать в Content-Length длину ответа.
Этого достаточно.
На счет начала ответа определился, а вот определение конца реализовал по другому. Если в TCP сегменте есть флаг PSH значит запрос окончен. Огромное спасибо за помощь!



Офлайн

#5 Июнь 24, 2011 19:51:46

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Сбор IP пакетов

Это же не совсем правильно http серверы и прокси не обязаны выставлять PSH. Кто-то делает, другие — нет.
Парсинг HTTP заголовков — это «правильный» способ.



Офлайн

#6 Июнь 24, 2011 20:02:19

dobryak
От:
Зарегистрирован: 2011-06-10
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Сбор IP пакетов

Андрей Светлов
Это же не совсем правильно http серверы и прокси не обязаны выставлять PSH. Кто-то делает, другие — нет.
Парсинг HTTP заголовков — это «правильный» способ.
Я с Вами полностью согласен. Но дело в том, что мне нужен сниффер сейчас под конкретный сервер.



Отредактировано (Июнь 24, 2011 20:04:15)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version