Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54

Как использовать мощь Tor'a?

21.02.2020, 15:10. Показов 1425. Ответов 3

Студворк — интернет-сервис помощи студентам
Хочу написать парсер с использованием сети Тор. После парсинга странцицы, скрипт должен сменить цепочку ip адресов и снова парсить. Нашел на этом форуме код и чуть-чуть изменил его
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def send(s, string):
    print('>', string)
    s.send(bytes(string.encode('utf8')))
    s.send(b'\n')
    data = recv(s)
    if not data.startswith('250 '):
        raise Exception()
    print(data)
 
 
def recv(s):
    return s.recv(1024).decode('utf8')
 
def newIdentefy():
    raw_password = 'pass'
 
    with socket.socket() as s:
        s.connect(('127.0.0.1', 9050))
        send(s, 'authenticate "%s"' % raw_password)
        send(s, 'setevents signal')
        send(s, 'signal newnym')

Но код выдаёт ошибку
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
> authenticate "pass"
---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-20-d87aea79b184> in <module>
----> 1 newIdentefy()
 
<ipython-input-18-d90124457bee> in newIdentefy()
     17     with socket.socket() as s:
     18         s.connect(('127.0.0.1', 9050))
---> 19         send(s, 'authenticate "%s"' % raw_password)
     20         send(s, 'setevents signal')
     21         send(s, 'signal newnym')
 
<ipython-input-18-d90124457bee> in send(s, string)
      5     data = recv(s)
      6     if not data.startswith('250 '):
----> 7         raise Exception()
      8     print(data)
      9 
 
Exception:

Ну собственно понятно, что ошибка из-за того, что ответ не начался с "250 ", так что если закомментировать строку с этой проверкой, то получаю такое
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
> authenticate "pass"
 
> setevents signal
---------------------------------------------------------------------------
ConnectionAbortedError                    Traceback (most recent call last)
<ipython-input-23-d87aea79b184> in <module>
----> 1 newIdentefy()
 
<ipython-input-21-38607d202267> in newIdentefy()
     18         s.connect(('127.0.0.1', 9050))
     19         send(s, 'authenticate "%s"' % raw_password)
---> 20         send(s, 'setevents signal')
     21         send(s, 'signal newnym')
 
<ipython-input-21-38607d202267> in send(s, string)
      2     print('>', string)
      3     s.send(bytes(string.encode('utf8')))
----> 4     s.send(b'\n')
      5     data = recv(s)
      6     #if not data.startswith('250 '):
 
ConnectionAbortedError: [WinError 10053] Программа на вашем хост-компьютере разорвала установленное подключение

Тут уже вообще только два варианта, либо что-то блокирует соединение, либо что-то с самим соединением.
На моём компьютере один антивирус, и после его отключения ошибка осталась, т.е. что-то с самим соединением. Однако мои знания сетевого программирования не позволяют мне установить в чём ошибка.
А так же из одного пособия другой код, который я пытался склеить с тем, что выше
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import socket
import socks
import requests
 
def send(s, string):
    print('>', string)
    s.send(bytes(string.encode('utf8')))
    s.send(b'\n')
    data = recv(s)
    #if not data.startswith('250 '):
    #    raise Exception()
    print(data)
 
 
def recv(s):
    return s.recv(1024).decode('utf8')
 
def newIdentefy():
    raw_password = 'Olga22'
 
    with socket.socket() as s:
        s.connect(('127.0.0.1', 9050))
        send(s, 'authenticate "%s"' % raw_password)
        send(s, 'setevents signal')
        send(s, 'signal newnym')
 
socks.set_default_proxy(socks.SOCKS5, 'localhost', 9050)
socket.socket = socks.socksocket
response = requests.get('http://icanhazip.com')
print(response.text)
newIdentefy()

Но в таком случае получается, что я отправляю на выходной узел сети Тор попытку подключиться к 127.0.0.1 из выходного шлюза, а не к моему 127.0.0.1
Там уже такая ошибка
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
---------------------------------------------------------------------------
SOCKS5Error                               Traceback (most recent call last)
D:\Anaconda\lib\site-packages\socks.py in connect(self, dest_pair, catch_errors)
    808                 negotiate = self._proxy_negotiators[proxy_type]
--> 809                 negotiate(self, dest_addr, dest_port)
    810             except socket.error as error:
 
D:\Anaconda\lib\site-packages\socks.py in _negotiate_SOCKS5(self, *dest_addr)
    443         self.proxy_peername, self.proxy_sockname = self._SOCKS5_request(
--> 444             self, CONNECT, dest_addr)
    445 
 
D:\Anaconda\lib\site-packages\socks.py in _SOCKS5_request(self, conn, cmd, dst)
    532                 error = SOCKS5_ERRORS.get(status, "Unknown error")
--> 533                 raise SOCKS5Error("{:#04x}: {}".format(status, error))
    534 
 
SOCKS5Error: 0x01: General SOCKS server failure
 
During handling of the above exception, another exception occurred:
 
GeneralProxyError                         Traceback (most recent call last)
<ipython-input-25-d87aea79b184> in <module>
----> 1 newIdentefy()
 
<ipython-input-21-38607d202267> in newIdentefy()
     16 
     17     with socket.socket() as s:
---> 18         s.connect(('127.0.0.1', 9050))
     19         send(s, 'authenticate "%s"' % raw_password)
     20         send(s, 'setevents signal')
 
D:\Anaconda\lib\site-packages\socks.py in wrapper(*args, **kwargs)
     45             if _is_blocking == 0:
     46                 self.setblocking(True)
---> 47             return function(*args, **kwargs)
     48         except Exception as e:
     49             raise
 
D:\Anaconda\lib\site-packages\socks.py in connect(self, dest_pair, catch_errors)
    812                     # Wrap socket errors
    813                     self.close()
--> 814                     raise GeneralProxyError("Socket error", error)
    815                 else:
    816                     raise error
 
GeneralProxyError: Socket error: 0x01: General SOCKS server failure

Тоже бы понять как это реализовать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2020, 15:10
Ответы с готовыми решениями:

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

Tora Package ошибка
есть пакет процедур, PK_PRT, который указал в свойстве PackageName компонента. Допустим в этом пакете есть процедура TEST_PRT со входящим...

Где найти программную систему оптимизации TORA?
Доброе время суток, господа! Помогите, подскажите, пожалуйста, где можно найти программную систему оптимизации TORA. Заранее спасибо.

3
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
21.02.2020, 18:30
Демон тора (с настроенным конфигом) должнен быть запущен на компе. Иначе к кому ты собираешься подключаться - к Тору из Асгарда?
0
5 / 2 / 3
Регистрация: 23.09.2018
Сообщений: 54
21.02.2020, 22:52  [ТС]
Garry Galler, в принципе ~5 миллиардов джоулей не валяются на земле, но я говорю про Демона тора (Марвел, бери на заметку). Тор браузер запущен, и я полагаю он не сможет работать без демона, следовательно он запущен.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.03.2020, 07:39
Перед тем как бездумно копировать мой код, нужно и вправду сгенерить хеш пароля и запустить демон тора.

Тот, который запускается с тор-браузером, имеет случайный пароль.

Добавлено через 3 минуты
Использование сети Tor
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.03.2020, 07:39
Помогаю со студенческими работами здесь

Кулер работает на полную мощь
Добрый день! C недавних пор при включении ноута (HP Elitebook 8460p) кулер работает на полную мощь и выводит прилично тепла....

решение запросов! нужна по-----мощь
1.Для заданного фамилией руководителя хранилища выдать список всех хранящихся в нем книг заданного издательства, характеристики этих...

Процессор работает не на всю мощь
Здравствуйте, хочу задать свой первый вопрос на данном форуме. Недавно начал замечать, что в играх(например ремастер человека паука) фпс...

Geforce 9800 gt работает не в полную мощь
Привет, форум. Помогите пожалуйста решить проблему: Видеокарта geforce 9800 gt (512мб, 650/950, скорее всего palit), как показывает...

Видеокарта перестала работать на полную мощь
Кто может помочь? Возникла такая проблема, всё было хорошо спокойно играл в игры, после чего начались жесткие просадки в фпс и было...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru