С нами с 30.08.10
Сообщения: 232
Рейтинг: 48
|
Добавлено: 19/05/12 в 11:00 |
Появилась необходимость использовать соксы в скрипте. Для реализации этой задачи склонился к использованию как я понимаю популярной либы socksipy. Ниже привожу ответственный кусок кода:
Код: [развернуть] |
import socks // грузим либу
socksfile=open('socks.txt') // открываем соксофайл
sockslist=socksfile.read().split('\n') // читаем в список
s=sockslist.pop(0) // берём сокс из списка
sockshost= s[:s.find(':')] // вычленяем хост
socksport=int(s[s.find(':')+1:]) // вычленяем порт
sk=socks.socksocket()
sk.setproxy(socks.PROXY_TYPE_SOCKS4, sockshost, socksport)
sk.connect((sockshost, socksport))
|
Проблема состоит в том, что последняя строка постоянно вылетает с еррором:
Никак не могу понять, что за объект в строку не конвертиться и в чём косяк. Есть тут знатоки?
|
|
|
|
С нами с 30.04.12
Сообщения: 51
Рейтинг: 157
|
Добавлено: 19/05/12 в 11:41 |
Для начала не совсем понятно зачем ты через прокси коннектишься к самому этому прокси, поэтому попробуй
|
|
|
|
С нами с 30.08.10
Сообщения: 232
Рейтинг: 48
|
Добавлено: 19/05/12 в 11:49 |
StrangeInscription писал: | Для начала не совсем понятно зачем ты через прокси коннектишься к самому этому прокси |
В аргументах метода connect да, ступил, подставив вместо целевого хоста и порта снова прокси Пофиксил, не помогло, однако.
|
|
|
|
С нами с 30.04.12
Сообщения: 51
Рейтинг: 157
|
Добавлено: 19/05/12 в 12:31 |
Давай тогда посмотрим на первые несколько строк socks.txt, мало ли что.
|
|
|
|
С нами с 30.08.10
Сообщения: 232
Рейтинг: 48
|
Добавлено: 19/05/12 в 12:44 |
93.99.5.245:1080
146.185.22.84:1080
83.91.86.26:9100
83.175.206.115:1080
79.129.17.76:1080
Начекал паблика пока для пробы)
|
|
|
|
С нами с 30.04.12
Сообщения: 51
Рейтинг: 157
|
Добавлено: 19/05/12 в 13:13 |
Даже не знаю чем помочь, у меня всё работает с данными параметрами.
Такого сообщения как у тебя так поймать и не удалось. Создаётся впечатление, что резолвер (gethostbyname) возвращает какую-то ошибку.
Попробуй заменить в socks.py
Код: [развернуть] | except socket.error:
# It's a DNS name. Check where it should be resolved.
if self.__proxy[3]==True:
ipaddr = "\x00\x00\x00\x01"
rmtrslv = True
else:
ipaddr = socket.inet_aton(socket.gethostbyname(destaddr))
# Construct the request packet
req = "\x04\x01" + struct.pack(">H",destport) + ipaddr
|
на
Код: [развернуть] | except socket.error:
# It's a DNS name. Check where it should be resolved.
if self.__proxy[3]==True:
ipaddr = "\x00\x00\x00\x01"
rmtrslv = True
else:
ipaddr = socket.inet_aton(socket.gethostbyname(destaddr))
print(ipaddr)
print(destport)
# Construct the request packet
req = "\x04\x01" + struct.pack(">H",destport) + ipaddr
|
и посмотреть вывод.
С другой стороны, попробуй взять более свежую socksipy хттп://code google com/p/socksipy-branch (проверял её с питоном 3.2.3 под windows и 2.6 под linux).
|
|
|
|
С нами с 30.08.10
Сообщения: 232
Рейтинг: 48
|
Добавлено: 19/05/12 в 14:03 |
StrangeInscription писал: | и посмотреть вывод. |
Добавил вывод, вот что получилось:
StrangeInscription писал: | резолвер (gethostbyname) возвращает какую-то ошибку |
Вывод результата gethostbyname тоже посмотрел, возвращает строку с айпи без проблем.
|
|
|
|
С нами с 30.04.12
Сообщения: 51
Рейтинг: 157
|
Добавлено: 19/05/12 в 14:34 |
Тогда давай продолжим извращения:
Код: [развернуть] | except socket.error:
# It's a DNS name. Check where it should be resolved.
ipaddr = socket.inet_aton(socket.gethostbyname(destaddr))
print(ipaddr)
print(destport)
# Construct the request packet
req = "\x04\x01" + struct.pack(">H",destport) + ipaddr |
Пока что-нибудь из заклинателей змей не пришёл
|
|
|
|
С нами с 30.08.10
Сообщения: 232
Рейтинг: 48
|
Добавлено: 19/05/12 в 14:58 |
Попробовал, теперь print(ipaddr) выводит b'\xd8\xb5?' и по-прежнему вылетает
|
|
|
|
С нами с 30.04.12
Сообщения: 51
Рейтинг: 157
|
Добавлено: 19/05/12 в 15:17 |
dreamnoob:
Стукни куда-нибудь, так проще будет.
|
|
|
|
С нами с 29.11.07
Сообщения: 91
Рейтинг: 56
|
Добавлено: 22/05/12 в 11:33 |
А socksipy под второй питон вроде
|
|
|
|
С нами с 30.04.12
Сообщения: 51
Рейтинг: 157
|
Добавлено: 22/05/12 в 12:50 |
Есть форк под третий.
|
|
|
|
С нами с 29.11.07
Сообщения: 91
Рейтинг: 56
|
Добавлено: 25/05/12 в 15:25 |
|
|
|
|