получить один URL-адрес веб-сайта из набора HTTP-пакетов? - PullRequest
1 голос
/ 06 февраля 2012

Я новичок в сетевом программировании, поэтому, пожалуйста, прости меня за любые ошибки.

Я пишу простой сниффер, который должен определять только URL-адреса веб-сайтов, запрошенных пользователем. Я использую pcap.net и могу захватывать http-пакеты (с фильтром tcp port 80) и извлекать из них данные. То, что я не могу сделать, это получить один URI для запроса, который вызвал много http-пакетов.

Например, 1. пользователь запрашивает (из браузера) www.website.com 2. приходит много http ответов, одним из которых является text / html для www.website.com 3. www.website.com содержит ресурсы с других html-страниц, поэтому приходит много других пакетов с других хостов.

Есть ли способ игнорировать пакеты из ресурсов? Должен ли я сделать некоторую реконструкцию сеанса TCP? Я гуглил 2 дня, но не смог найти ничего полезного, поэтому, пожалуйста, помогите.

1 Ответ

0 голосов
/ 10 февраля 2012

HTTP-ответы от других хостов можно идентифицировать, поскольку они, вероятно, будут приходить с разных IP-адресов, а не с IP-адреса, на который был отправлен запрос.

Вы можете сопоставлять HTTP-запросы и ответы даже без полной реконструкции TCPпросто взглянув на IP-адреса и TCP-порты.

Однако, если у вас есть несколько HTTP-запросов в одном и том же сеансе TCP, вам потребуется выполнить реконструкцию TCP, чтобы разделить различные запросы и ответы.

...