2012-11-12 3 views
10

루비 코드에서 프록시를 사용하여 웹 페이지를 가져오고 싶습니다. 그리고 나는 그것에 대해 비열 거리고 싶다! 그래서 저는 Tor를 사용하고 있습니다.Ruby, Tor and Net :: HTTP :: Proxy

Tor가 실행 중이고 Net :: HTTP.get (uri)를 평소와 같이 사용할 수 있습니다. 하지만 Net :: HTTP :: Proxy를 사용하여 URI를 가져 오는 방법을 알 수는 없습니다. 나는 또한 Tor를 사용하여 나의 가져 오기를 익명으로 만드는 데 도움이되는 방법을 이해할 수 없습니다.

도움을 주시면 대단히 감사하겠습니다. link to the ruby-doc page for Net::HTTP::Proxy을 추가하지 마십시오. 나는 것을 이해했다면, 나는 SOCKSify를 사용하는이 작업을 수행 할


또 다른 쉬운 방법 :-) 여기에이 요청되지 않을 것이다, 그러나이 경우에는, 나는 다음과 같은 오류가 나타납니다

/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)

는 내가 전에 모든 네트워크 프로그래밍을 해본 적이있다. 이것에 대한 지침은 또한 매우 도움이 될 것입니다. 감사합니다 :-)

+0

[Net :: HTTP :: Proxy] (http://apidock.com/ruby/Net/HTTP/Proxy/class)에 대한 링크는 어떻습니까? – pguardiario

+0

지적 해 주셔서 감사합니다. 링크가 질문에 추가되었습니다. –

+0

매우 흥미로운 사업. 가능한 해결책을 기대하고 있습니다. –

답변

13

HTTP 프록시 클래스를 사용 중이므로 HTTP 프록시 IP를 제공해야합니다. Tor 브라우저는 이 아니며 HTTP 프록시가 번들로 제공됩니다.

그래서 당신은 예를 들어, 일부 프록시 소프트웨어를 설치할 수 있습니다

으로 config.txt 에서 forward-socks4a / 127.0.0.1:9050 .

다음 것이냐의 기본 듣고 주소를 스크립트에 사용 :

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

또는 사용 SOCKSify을 Privoxy하고 구성은 토르의 SOCKS 사용 . 따르면 docs에 : 루비 스크립트의 모든 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 주소임을 이해해야합니다.