2011-06-28 5 views
0

私はプロキシをC#経由で使用しており、誰かがそれらを管理する良い方法を知っているのだろうかと思っていました。C#プロキシのリスト

あなたが知っているように、プロキシの状態は時間とともに変化し、悪い状態になっているプロキシは後で再試行または削除する必要があります。このプロキシのリストを維持して、ベストプロキシが使用されるようにするにはどうすればよいでしょうか?失敗したものは何度か、またはタイムアウトなどの後に頻繁に使用されません...

私が参照しているプロキシのタイプtoは、HttpWebRequestに適用できる単なるWebProxyです。

不正なプロキシを使用する要求の数を最小限に抑えることも重要です。私はあなたを理解していれば

+1

どのようなプロキシについてお話していますか? .netリモートプロキシ? –

+0

何のためのプロキシ? – jason

+0

ちょうど典型的なip:portプロキシは、httpwebrequest – user623879

答えて

1

は、Webサーバーへの接続を行うために使用HTTPプロキシない、例えば、WCFプロキシまたはRPCプロキシについて話しています。

あなたのプログラムが複数のものを使用するかのように行動しているということは奇妙です。それは確かに非常にまれなプログラムです!私たちのほとんどは、OSの設定に組み込まれているデフォルトを使用しています。プロキシサーバーが突然降りるという考えはまれです。あなたのリクエストにプロキシをランダムに選択する予定ですか?あなたはちょうどプロキシサーバーを見つけるしようとしていますか?

プロキシサーバが動作しないかどうかは、response.StatusCodeを調べることだけです。 BadGatewayまたはGatewayTimeoutはすべきことです。

だから、良いと悪い管理。 WebProxyオブジェクトを値として、プロキシのURIに対してキーを設定した簡単な辞書に固執します。あなたがしようとしていることを理解していると仮定して、プロキシURIを試してみて、それがうまくいけば、辞書に追加してください。既存のプロキシが悪いと判明した場合は、そのプロキシを辞書から削除します。

+0

に適用できます。申し訳ありませんが、私の質問はややわかりにくいものでした。私はインターネットから収集されたWebプロキシを使用しており、断続的に上/下に移動します。彼らが有効であるかどうかは簡単に確認できます。私は必ずしもプロキシをすぐに削除したいとは限りません。私が持っているすべてのプロキシのリストを保持する方法ですが、最も頻繁に使用するプロキシを使用する方法です。私は優先待ち行列を検討しています。 – user623879

+0

オクラホマ、十分に。優先待ち行列はあなたの最善の策のようです。 – Randolpho

0

私は、優先キューが多すぎると思う。さらに、プロキシリストをどのような優先度または優先度で分類するのですか?

この場合、よりシンプルな設計が良いと思います:最新の有効なプロキシをプッシュする2つの「バケット」またはtow FIFOリストと、動作していないプロキシをプッシュする場所です。

次に、両方のプロキシIPアドレスを再度確認するためにプロキシIPアドレスをポップします。あなたは、そのプロキシリストのどれがより頻繁にチェックするかを決めることができます。

proxy-ip-list.comのようなプロキシIPリストを持つWebサイトはおそらくそのようなアプローチを使用します。