我尝试使用ruby 2.0和SOCKSify 1.5.0在SOCKS代理上代理ruby应用程序的流量。
require 'socksify/http'
uri = URI.parse("www.example.org")
proxy_addr = "127.0.0.1"
proxy_port = 14000
puts Net::HTTP.SOCKSProxy(proxy_addr, proxy_port).get(uri)
这是最小的工作示例(初始代码更大,我减少它以查明错误),显然它不起作用,但我认为它应该。我没有收到执行文件的错误消息,它没有停止,所以我必须手动中止它 我在this answer找到解决方案后尝试了解决方案(该答案中的代码不同,但如上所述,我首先将其调整为匹配我现有的非代理代码,然后将其缩小)
代理工作,我在我自己的网络服务器和其他网站上测试了 tor 和ssh -D
连接。
我是Ruby新手,对我来说很光鲜。 由于rubyforge似乎不再存在,我无法访问SOCKSify documentation on it。我认为版本可能已经过时,不适用于ruby 2.0或类似的东西。
我在这里做错了什么?或者是否有SOCKSify的替代品?
答案 0 :(得分:0)
检查Net::HTTP#Proxies
的文档提供了一个示例,我们可以根据我们的代码。另请注意添加.body
方法,也可在文档中找到。
试试这段代码:
require 'socksify/http'
uri = URI.parse('http://www.example.org/')
proxy_addr = '127.0.0.1'
proxy_port = 1400
Net::HTTP.SOCKSProxy(proxy_addr, proxy_port).start(uri.host, uri.port) do |http|
puts http.get(uri.path).body
end