2012-11-12 6 views
10

Rubyコードでプロキシを使用していくつかのWebページを取得したいと思っています。そして私はそれについて卑劣なことをしたい!だから私はTorを使用しています。Ruby、Tor、Net :: HTTP :: Proxy

私はTorを実行しており、いつものようにNet :: HTTP.get(uri)を使用できます。しかし、Net :: HTTP :: Proxyを使ってURIを取得する方法を理解できません。私はまた、Torを使って私のフェッチを匿名化するのに役立つ方法を理解できません。

ご協力いただきまして誠にありがとうございます。単にlink to the ruby-doc page for Net::HTTP::Proxyを追加しないでください。

/usr/lib/ruby/gems/1.9.2-p290/gems/socksify-1.5.0/lib/socksify.rb:189:in 'socks_authenticate': SOCKS version not supported (SOCKSError)

:私はこれを行うためのもう一つの簡単な方法は SOCKSifyを使用しているが、この場合には、私は次のエラーが表示さ


:-)ここでは、これを尋ねることはない、と理解していた場合

これまでにネットワークプログラミングを行ったことはありません。これについてのガイダンスも非常に役立ちます。ありがとう:-)

+0

[Net :: HTTP :: Proxy](http://apidock.com/ruby/Net/HTTP/Proxy/class)へのリンクについてはどうですか? – pguardiario

+0

それを指摘してくれてありがとう。リンクが問題に追加されました。 –

+0

確かに面白い約束。私は可能な解決策を楽しみにしています。 –

答えて

13

HTTPプロキシクラスを使用しているため、HTTPプロキシのIPを指定する必要があります。 Torブラウザはではなく、 HTTPプロキシをバンドルしています。

プロキシソフトウェアをインストールすることもできます。 PrivoxyとTorののSOCKSを使用するように設定します:のconfig.txtで

forward-socks4a / 127.0.0.1:9050 .

、あなたのスクリプトでPrivoxyののデフォルトが聞くアドレスを使用します。

proxy = Net::HTTP::Proxy('127.0.0.1',8118) 

または SOCKSifyを使用。 よるdocsへ:RubyスクリプトのすべてのTCP接続をリダイレクト

$ socksify_ruby localhost 9050 script.rb 

を:

require 'socksify/http' 
uri = URI.parse('http://rubyforge.org/') 
Net::HTTP.SOCKSProxy('127.0.0.1', 9050).start(uri.host, uri.port) do |http| 
    http.get(uri.path) 
end 

追加のソフトウェアは必要ない。..

第三ソリューションは、次のようにSOCKSifyを使用することですつまり、プロキシコードをまったく使用する必要はありません。

明確にするために、127.0.0.1:9050はTorのSOCKSアドレスであり、127.0.0.1:8118はPrivoxyのアドレスであることを理解する必要があります。

関連する問題