Показать сообщение отдельно

  #3  
Старый 18.11.2009, 11:30
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
С нами: 9427413

Репутация: 973


По умолчанию

Бла-бла-бла
От пиздёжа к делу.
Необходима socksipy :
Код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import poplib
import socks

def create_connection((host, port), timeout):
    proxy_addr = "0.0.0.0"#Адрес прокси-сервера
    proxy_port = 8080#Порт прокси-сервера (типа int)
    proxy_type = 3#Тип прокси-сервера (1-SOCKS5, 2-SOCKS4, 3-HTTP с разрешенным методом CONNECT)
    soket = socks.socksocket() #Создание обьекта socksocket из socksipy
    soket.setproxy(proxytype=proxy_type, addr=proxy_addr, port=proxy_port)#Установка прокси для него
    soket.connect((host, port))#Вызов его метода connect
    return soket#Возврат сокета из функции
    
poplib.socket.create_connection = create_connection
Вот тебе манкипатч.
После него пишешь весь свой код (естественно не импортируя повторно poplib )
Проверил только что.
Как уже видно, он патчит метод create_connection из модуля socket, этот метод в библиотеке используется один раз - в атрибуте, который я указал выше.
Вроде работает.
Для себя - самое то, большего не нужно.
Для использования в более высоких целях - не катит ибо там саму socksipy нужно патчить под голимые пабликовые прокси.
 
Ответить с цитированием