Происхождение URL браузера в winpcap - PullRequest
0 голосов
/ 08 февраля 2010

Есть ли способ узнать источник (веб-браузер) определенного URL / пакета при программировании с помощью winpcap и c ++?

Ответы [ 2 ]

1 голос
/ 08 февраля 2010

URL является просто адресной строкой и не связан с каким-либо конкретным браузером как таковым. Пакет, однако, отправляется, как правило, приложением. В случае HTTP-трафика мы можем смело предполагать TCP. Пакеты TCP всегда имеют 4 поля адресации: исходный IP-адрес, исходный порт, IP-адрес назначения и порт назначения. Порты назначаются однозначно одному приложению. В этом случае исходный порт будет назначен веб-браузеру, а порт назначения - веб-серверу.

Обратите внимание, что порт назначения, вероятно, 80, статически назначен веб-серверу, но исходный порт назначается случайным образом и может быть переназначен позже. Следовательно, вам нужно немедленно его найти.

0 голосов
/ 30 сентября 2012

После захвата tcp-пакета, содержащего полезную нагрузку HTTP, вам нужно будет изолировать заголовок HTTP в виде строки, чтобы вы могли работать с ним. В полезной нагрузке HTTP вы найдете ключевое слово User-Agent (вам нужно будет найти его в строке httpHeader) и прочитайте соответствующее значение. Я думаю, что вы можете изолировать заголовок HTTP, выполнив следующее

char* httpHeader = pkt_hdr + 14 + sizeof(TCP_header) + sizeof(IP_header)
...