.NET: Список URL-адресов HTTP-трафика с помощью C#

#c# #.net #http #url

#c# #.net #http #url

Вопрос:

Я ищу базовый метод получения URL-адресов (HTTP), запрашиваемых любым другим приложением на локальном компьютере. В принципе, мне нужно только текстовое поле в этом приложении, в котором перечислены URL-адреса по мере их запроса. Меня интересует только URL-адрес, не более. Какой был бы самый простой способ добиться этого? Я бы предпочел не требовать, чтобы приложение запускалось в режиме администратора, и я не хочу использовать внешние библиотеки, такие как Fiddler или аналогичные.

Обновить:

Я заметил, что Fiddler был разработан с .NET, поэтому, очевидно, можно делать то, что я хочу, используя только .NET. Я просматриваю код Fiddler, используя Reflector, но это не дает мне многого. Я не знаю, с чего начать. Но, как я уже сказал, меня интересует только исходящий трафик по HTTP и только конкретный URL-адрес запроса. Это не может быть так сложно, поэтому исправьте с помощью.Только в СЕТИ?

Обновить:

Ключ, похоже, заключается в использовании сокета из пространства имен System.Net.Sockets. Я пока не совсем уверен, как его правильно использовать, но я следую некоторым другим примерам, и это кажется довольно простым.

Комментарии:

1. Вероятно, вы не найдете базовый метод, если не сможете изменить приложение, которое пытаетесь отслеживать. Просто любопытно — почему вы не хотите использовать fiddler?

2. Ну, я хочу, чтобы все было просто, и я хочу знать, что я делаю. Fiddler, похоже, намного больше, чем мне нужно. Простой мониторинг запрошенных URL-адресов не кажется очень сложной задачей, но, может быть, это так?

Ответ №1:

Я знаю, вы сказали, что не хотите использовать внешние библиотеки, но нет простого способа перехватить URL-адреса, запрошенные другими процессами, без использования других библиотек.

В случае, если вам интересно, я некоторое время назад использовал PCap .NET. Это было действительно просто в использовании, и через несколько часов у меня было приложение, прослушивающее HTTP-сообщения между сторонними приложениями и автоматизирующее одно из них в зависимости от захваченной информации.

Комментарии:

1. Я надеялся, что это возможно с помощью . Только для СЕТИ, но, возможно, это не так.

2. @nateirvin Я только что попробовал, и это работает. Может быть, вчера сервер не работал ..?