Найти - Пользователи
Полная версия: Сбор IP пакетов
Начало » Python для новичков » Сбор IP пакетов
1 2
Андрей Светлов
Не установлен. FIN — это единичка. 24 — это PUSH и ACK.
Константы для флагов определены в самом начале http://code.google.com/p/dpkt/source/browse/trunk/dpkt/tcp.py
dobryak
Ага, теперь все ясно. А проверять я так понимаю можно так:
if TH_FIN == (TH_FIN & flag):
print 'Connection termination.'
Тогда еще вопрос по поводу:
Андрей Светлов
На самом деле для HTTP все чуть сложее: если клиент и сервер оба поддерживают keep-alive (http://en.wikipedia.org/wiki/HTTP_persistent_connection)
Да действительно соединение после первого HTTP запроса на сервер не рвется. Не подскажите какие есть методы как можно отследить конец HTTP ответа, для этого случая? Заранее благодарен.
то в соединении может проскочить несколько ответов. Вам нужно научиться их обрабатывать.
Андрей Светлов
Нужно парсить HTTP заголовки.
Заголовок ответа начинается со строки типа
HTTP/1.1 200 OK
и заканчивается двумя пустыми строками. Дальше идет ответ.
Персистентное соединение должно указывать в Content-Length длину ответа.
Этого достаточно.
dobryak
Андрей Светлов
Нужно парсить HTTP заголовки.
Заголовок ответа начинается со строки типа
HTTP/1.1 200 OK
и заканчивается двумя пустыми строками. Дальше идет ответ.
Персистентное соединение должно указывать в Content-Length длину ответа.
Этого достаточно.
На счет начала ответа определился, а вот определение конца реализовал по другому. Если в TCP сегменте есть флаг PSH значит запрос окончен. Огромное спасибо за помощь!
Андрей Светлов
Это же не совсем правильно http серверы и прокси не обязаны выставлять PSH. Кто-то делает, другие — нет.
Парсинг HTTP заголовков — это «правильный» способ.
dobryak
Андрей Светлов
Это же не совсем правильно http серверы и прокси не обязаны выставлять PSH. Кто-то делает, другие — нет.
Парсинг HTTP заголовков — это «правильный» способ.
Я с Вами полностью согласен. Но дело в том, что мне нужен сниффер сейчас под конкретный сервер.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB