代理服务器后面的net/imap
我想在经过验证的代理服务器后面使用ruby中的net/imap库,我开始深入了解,并且想知道是否有办法做到这一点,或者如果我需要制作我自己的支持代理的net/imap库版本?代理服务器后面的net/imap
是可能的隧道通过HTTPS代理服务器的任何套接字连接。
要做到这一点:
- 打开一个套接字代理服务器
- 发送 “CONNECT主机名:端口号HTTP/1.0 \ n \ r \ n \ r \ n”
- 从读插座,直到你看到的HTTP标头的结尾(2个空行)
- 您的插座现在连接
这里有这样一个名为tunN的ruby example埃尔。
原因,这将失败:
- 大多数网络管理员将只允许连接到端口443
- 代理服务器代理认证
破解不支持代理信息库,最简单的方法是用Net::HTTP::Proxy
一个实例来代替Net::HTTP
:
# somewhere before you load net/imap
proxy = Net::HTTP::Proxy(address, host)
Net.class_eval do
remove_const :HTTP
HTTP = proxy
end
不意味着它需要通过HTTP运行?为了以防万一,我会尽力而为。 – 2010-02-25 06:15:05
大鼠。我假设Net/IMAP库使用Net :: HTTP库来构建套接字,但它并没有。 (我有*没有线索*顺便说一句,为什么我认为这没有多大意义。) – 2010-02-26 18:59:09
感谢任何方向在套接字级别提供代理支持,我正在寻找,它似乎可能是混乱的。我可能必须遵循他们用于Net :: HTTP :: Proxy的模式 – 2010-02-26 21:45:16
此服务器具有代理身份验证。但你的例子有这种情况下的套接字方法。我想我应该可以使用该套接字将net/imap重写为我可以使用的东西。谢谢 – 2010-03-08 12:25:28