6

Torプロキシ経由でリクエストを行おうとしています

myRequest.Proxy = New WebProxy("127.0.0.1", 8118)

しかし、これは私にエラーを与えます Unable to connect to the remote server

内側の例外はNo connection could be made because the target machine actively refused it 127.0.0.1:8118

私の読書は、これがファイアウォールの問題である可能性があることを示しているので、Windows FWを完全にオフにし、AVGAVも一時的に無効にしました。私は気づいていない他の保護を持っていません

念のため、ポート番号として9050と9051も試しましたが、役に立ちませんでした。

Torブラウザが機能しているので、私のコードも機能するはずです。Torを使用するようにプロキシを設定するにはどうすればよいですか。

ところで、「8118」のメモリが不足しているため、プロキシとして使用するポートに関するドキュメントが見つかりませんでした

多分私のtorは何か他のものに設定されていますか?

どうもありがとう!

編集

privoxyに関して:

過去(約1年以上前)にtorをダウンロードしてから、プロキシとして8118を追加すると、すべてが機能しました。今はそうではありません。多分何かが変わった?

だから私はCodeCasterによって提案されたようにprivoxyをダウンロードしました、torとprivoxyの両方が実行されているとき、リクエストは機能しますが、応答がサーバーによって認識されているかのように戻ってくるので、torプロキシを利用しないことを恐れています

過去にprivoxyをダウンロードする必要がなかった理由を知っていますか?今はダウンロードして有効にする必要がありますか?

ありがとうございました

編集#2: テスト

私は今、次のような簡単なテスト関数を作成しました:

    Function ExternalIP(Optional Proxy As Integer? = Nothing) As String
        Dim webClient = New WebClient
        webClient.Headers.Add("Cache-Control", "max-age=0")
        If Proxy.HasValue Then webClient.Proxy = New WebProxy("127.0.0.1", Proxy.Value)
        Dim ip = webClient.DownloadString("http://myip.ozymo.com/")
        webClient.Dispose()
        Return ip
    End Function

プロキシを渡さずに使用すると、通常の実際のIPが返されます。ここまでは順調ですね

プロキシとして8118を使用すると、次のようになります。

privoxyが実行されている場合は、通常のIPを取得します(Torブラウザーに表示されるなりすましのIPの代わりに)。全体が無意味になります

実行されていない場合は、上記のエラーが発生しますNo connection could be made because the target machine actively refused it 127.0.0.1:8118

要約すると、過去にiveはPrivoxyなどを使用せずにTor自体(およびVidalia)を使用していましたが、問題なく機能していました。

ありがとうございました

4

3 に答える 3

3

@junior-mayheの答えはここで私のためにそれをしました

Torをプロキシとして使用する

将来、他の誰かがこの質問に遭遇した場合に備えて...

ジュニアメイヘ:これを見たら、ここで答えてくれませんか。担当者を少し増やすことができますか?ありがとう :-)

于 2012-08-19T10:26:57.427 に答える
0

以下のコードを使用してデフォルト プロキシを取得し、myRequest オブジェクトを割り当てます。

    WebProxy proxy = (WebProxy) WebProxy.GetDefaultProxy();

    // See what proxy is used for resource.
    Uri resourceProxy = proxy.GetProxy(resource);

    // Test to see whether a proxy was selected.
    if (resourceProxy == resource)
    {
        Console.WriteLine("No proxy for {0}", resource);
    } 
    else
    {
        Console.WriteLine("Proxy for {0} is {1}", resource.ToString(),
            resourceProxy.ToString());
    }

ソース: http://msdn.microsoft.com/en-us/library/system.net.webproxy.getdefaultproxy.aspx

于 2012-08-13T14:37:27.113 に答える