#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 Я только что попробовал, и это работает. Может быть, вчера сервер не работал ..?