Захват HTTP-запросов - PullRequest
       7

Захват HTTP-запросов

4 голосов
/ 10 февраля 2009

Есть ли способ контролировать и перехватывать все исходящие HTTP-запросы с компьютера с помощью C #?

Мне нужен независимый от браузера способ регистрации посещенных URL.

Ответы [ 6 ]

9 голосов
/ 10 февраля 2009

Я использую Fiddler (http://www.fiddler2.com)

8 голосов
/ 10 февраля 2009

Вы можете использовать существующие сетевые интерфейсы для захвата библиотек, таких как pcap или winpcap. Переписать все необходимые вещи самостоятельно было бы довольно дорого.

Ссылка на Pcap

Ссылка на WinPcap

Редактировать: Только что увидел, что кто-то также написал привязки C # для winpcap: SharpPcap

5 голосов
/ 10 февраля 2009

Звучит так, словно вам нужна какая-то утилита "перехвата пакетов".

Вот пара ссылок на статьи на сайте Code Project для снифферов пакетов (с загружаемым исходным кодом), написанных на C #:

Пакетный захват и анализайзер

Сетевой анализатор в C #

Если вы только после захвата посещенных URL-адресов, эти утилиты могут быть излишними, однако вы сможете извлечь URL-адрес из ваших HTTP-пакетов и отбросить остальные, однако, вы также можете захотеть захватить всю информацию пакета , в этом случае эти утилиты помогут.

3 голосов
/ 10 февраля 2009

Вы, вероятно, сэкономите много времени и усилий с настройкой прокси-сервера. Достойным решением для локальной машины будет Fiddler (требуется Windows) или что-то вроде Squid для сетевого решения.

2 голосов
/ 10 февраля 2009

Надеюсь, если Wirehark подойдет вам. Это бесплатно и кроссплатформенно. Также, «Wireshark является ведущим в мире анализатором сетевых протоколов и стандартом де-факто (и часто де-юре) во многих отраслях и учебных заведениях»

Посмотри, Wireshark-Википедия

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

Кроме того, написание простого прокси-сервера http для этой цели в C # является тривиальной задачей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...