如何获取用户在C#中输入的URL?

时间:2013-02-02 09:31:54

标签: c# .net url

我想捕获用户通过在C#中创建的Windows服务访问的URL。

感谢大家帮忙解决该怎么做。 实际上我想创建一个Windows服务并记录用户使用任何浏览器浏览的所有网址。

3 个答案:

答案 0 :(得分:1)

我认为FiddlerCore是创建代理以监控网址的最简单方法

static void Main(string[] args)
{
    Fiddler.FiddlerApplication.BeforeRequest += sessionState =>
        {
            Console.WriteLine("URL={0}", sessionState.fullUrl);
        };

    Fiddler.FiddlerApplication.Startup(8888, true, true);

    Console.ReadLine();

    Fiddler.FiddlerApplication.Shutdown();

    System.Threading.Thread.Sleep(750);
}

答案 1 :(得分:0)

  1. 您可以创建代理应用(任何语言,简单,缺点:您需要配置窗口或浏览器才能使用本地代理)
  2. 你可以挂钩所有应用程序并捕获winsock调用(C#,C ++,中级,缺点:脏!)
  3. 您可以创建winsock LSP(C ++,Hard)
  4. 您可以使用嗅探(C#,中级):http://www.codeproject.com/Articles/17031/A-Network-Sniffer-in-C
  5. 使用sharppcap(C#,中级):http://sourceforge.net/projects/sharppcap/

答案 2 :(得分:-1)

  1. 您需要向服务的当前上下文获取请求详细信息
    1. 在生成请求时保存Request.ServerVariables并在需要时加载数据

    2. 只需浏览服务器变量列表并仅保存所需的服务器变量 http://www.codeproject.com/Articles/2186/A-list-of-Request-Objects-server-variables