net / imap из-за прокси - PullRequest
       7

net / imap из-за прокси

2 голосов
/ 24 февраля 2010

Я хотел бы использовать библиотеку net / imap в ruby ​​за аутентифицированным прокси-сервером, я начал копаться и мне интересно, есть ли способ сделать это уже или мне нужно сделать свою собственную версию библиотека net / imap, которая поддерживает прокси?

Ответы [ 2 ]

1 голос
/ 08 марта 2010

Возможно туннелирование любого сокетного соединения через прокси-сервер HTTPS.

Для этого:

  • открыть сокет для вашего прокси-сервера
  • отправить "ПОДКЛЮЧИТЬ имя хоста: номер порта HTTP / 1.0 \ n \ r \ n \ r \ n"
  • чтение из сокета до конца заголовков HTTP (2 пустые строки)
  • ваше гнездо подключено

Вот пример ruby ​​ такого туннеля.

Причины, по которым это не удастся:

  • большинство сетевых администраторов разрешают подключаться только к порту 443
  • прокси-сервер имеет прокси-аутентификацию
0 голосов
/ 24 февраля 2010

Самый простой способ взломать библиотеки, не поддерживающие информацию прокси, - заменить 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...