1

こんばんは、

次の 2 つのバッチ コマンドを使用して、Windows 8 ラップトップでワイヤレス ホスト ネットワークを作成しました。

その後、デバイス (Android ベースの携帯電話) は、ラップトップでホストされているこのワイヤレス ホスト ネットワークに正常に接続できます。また、C# でポート 1234 に HttpListener を作成しました。デバイスは、組み込みの Web ブラウザーを使用してアクセスすることで正常にアクセスできます。

http://192.168.138.1:1234

しかし、ホスト (IE 私のラップトップ) はどのように Web ページのリクエストをインターセプトしてリダイレクトするのでしょうか? つまり、デバイスが google.com や facebook.com などの Web ページにアクセスしようとしたときに、ラップトップで実行されている .NET プログラムにどのように通知され、代わりにこの Web ページを別の Web ページに送信して、デバイスを別の Web ページにリダイレクトするのでしょうか?

私は次のことを試しました:

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();
        }

ただし、ラップトップで実行されているプログラムは、デバイスを使用して Web ページ (例: google.com) にアクセスすると、何も取得しません。何度も質問してすみません、どこにも見つかりませんでした!

4

1 に答える 1

0

これを機能させるには、独自の DNS サーバーをセットアップする必要があります。問題は、ラップトップが google.com の DNS クエリを作成し、あなたのサーバーではなく Google のサーバーを指す IP を受け取ることです。

または、リダイレクトしたいサイトが少数しかない場合は、それらのエントリをhostsファイルに追加します。

于 2015-01-15T08:14:49.783 に答える