【问题标题】:Intercepting webpage requests through Wireless Hosted Network通过无线托管网络拦截网页请求
【发布时间】:2013-06-22 10:56:44
【问题描述】:

晚上好,

我通过以下 2 个批处理命令在我的 Windows 8 笔记本电脑上创建了一个无线托管网络: “netsh wlan 设置托管网络模式=允许 ssid=测试密钥=12345678” 和 "netsh wlan 启动托管网络"

之后,设备(基于 Android 的手机)能够成功连接到我的笔记本电脑上托管的这个无线托管网络。我还在 C# 的 1234 端口上创建了一个 HttpListener,设备可以通过使用内置的 Web 浏览器访问成功访问:

http://192.168.138.1:1234

但是,主机(即我的笔记本电脑)如何拦截和重定向网页请求?也就是说,当设备尝试访问任何网页(例如 google.com 或 facebook.com)时,如何通知在我的笔记本电脑上运行的 .NET 程序,然后通过发送此网页将设备重定向到另一个网页?

我尝试了以下方法:

HttpListener listener = new HttpListener();
        listener.Prefixes.Add("http://+:80/");
        listener.Start();
        Console.WriteLine("Started");
        while (true)
        {
            var c = listener.GetContext();
            Console.WriteLine("Connection");
            string response = "<HTML><BODY>My web page.<br></BODY></HTML>"; //Redirects device to this
            byte[] b = Encoding.UTF8.GetBytes(response);
            c.Response.ContentLength64 = b.Length;
            c.Response.OutputStream.Write(b, 0, b.Length);
            c.Response.OutputStream.Close();
        }

但是,当我使用该设备访问任何网页(例如 google.com)时,在我的笔记本电脑上运行的程序根本没有提取任何内容。抱歉,如果我问了一个重复的问题,我在任何地方都找不到!

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    您需要设置自己的 DNS 服务器才能正常工作。问题是您的笔记本电脑对 google.com 进行了 DNS 查询,并收到了指向 Google 的服务器而不是您的服务器的 IP。

    或者,如果您只想重定向几个站点 - 在您的 hosts 文件中为它们添加条目。

    【讨论】:

      猜你喜欢
      • 2019-02-18
      • 1970-01-01
      • 2019-08-17
      • 2022-06-23
      • 2021-08-18
      • 1970-01-01
      • 2016-03-28
      • 2014-03-18
      • 1970-01-01
      相关资源
      最近更新 更多