2017-03-02 9 views
0

基本的に私はURLブラックリストを持っています。私のプロジェクトでは、ポート80を聞いてこれらのURLへのリクエストを127.0.0.1にリダイレクトするためにC#を使う必要があります。c#ポートフォワーディングの例

私はネットワーキングについてよく分かりません。私はいくつかの話題を見ましたが、あまり理解していません。それの一例がいいだろう。それに沿って来るいくつかの説明はさらに良くなるだろう。

ありがとうございました

答えて

2

ポートフォワーディングを希望しています。ポート転送はURLとは何の関係もなく、実装にはTCP/IPの理解が必要ですが、URLを「リダイレクト」しません。

あなたの説明は、ポート80でリッスンし、要求を不正なURLにリダイレクトすることを示しています。つまり、最初に悪いURLをポート80にリダイレクトし、HTTPサーバーを実装し、クライアントの実際の要求を判断するためにホストヘッダーを調べ、ブラックリストを確認してから、httpを形成するDNSサーバーを実装する必要がありますクライアントにリダイレクトするように指示する応答を送信しますが、何らかの形で中毒したDNSサーバーがその要求を再度送信しないようにします。

あなたが本当に望んでいるのはDNSサーバだけですか、あなたのホストファイルにあなたの悪いURLを置き、127.0.0.1を指すようにしてください。

+0

申し訳ありませんが、私にとっては大変な情報です。私の友人は、TCPListenerを使用してポート80でリッスンしてから、ヘッダーをアンラップして、私の黒いURLの1つにリクエストしてから別の場所にパケットを再送信することができると教えてくれました。ちょうどそれが可能な方法かどうか疑問に思っています – libra

+0

私はすでにホストファイルを変更する機能を実装していますが、人々が編集するのは簡単すぎます – libra

+1

トラフィックの検査に基づいてポートフォーニングのように聞こえるので、あなたはそれを行うためにいくつかの非常に高度なものを行う必要があります。 HTTPヘッダーを取得するのに十分な長さのTCPハンドシェイクでクライアントを偽装し、転送されたサーバーへのトラフィックを巻き戻して再生して、クライアントが転送したことをクライアントに知らせないようにする必要があります。スタックオーバーフローコメントにどのくらいの作業が含まれるかを記述する方法はありません。 – Tim