晚安,
我通过以下2个批处理命令在Windows 8笔记本电脑上创建了无线托管网络: “netsh wlan set hostednetwork mode = allow ssid = testing key = 12345678” 和 “netsh wlan start hostednetwork”
之后,设备(基于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();
}
但是,当我使用该设备访问任何网页(E.G. google.com)时,我的笔记本电脑上运行的程序根本不会提取任何内容。对不起,如果我问了一个重复的问题,我在任何地方找不到它!
答案 0 :(得分:0)
您需要设置自己的DNS服务器才能实现此目的。问题是您的笔记本电脑为google.com提供DNS查询并收到指向Google服务器而不是您的服务器的IP。
或者,如果您只想重定向几个网站,请在hosts
文件中为其添加条目。