代理后面的net / imap

时间:2010-02-23 21:24:26

标签: ruby proxy

我想在经过身份验证的代理后面使用ruby中的net / imap库,我开始深入研究,我想知道是否有办法做到这一点,或者我是否需要制作自己的版本支持代理的net / imap库?

2 个答案:

答案 0 :(得分:1)

可以通过HTTPS代理服务器隧道传输任何套接字连接。

要做到这一点:

  • 打开代理服务器的套接字
  • 发送“CONNECT hostname:portnumber HTTP / 1.0 \ n \ r \ n \ r \ n”
  • 从套接字读取,直到看到HTTP标头的末尾(2个空行)
  • 您的套接字现已连接

这是这样一条隧道的ruby example

这会失败的原因:

  • 大多数网络管理员只允许CONNECT到端口443
  • 代理服务器具有代理身份验证

答案 1 :(得分:0)

攻击不支持代理信息的库的最简单方法是将Net::HTTP替换为Net::HTTP::Proxy的实例:

# somewhere before you load net/imap
proxy = Net::HTTP::Proxy(address, host)
Net.class_eval do
  remove_const :HTTP
  HTTP = proxy
end