Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/40: Рейтинг темы: голосов - 40, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 21.06.2017
Сообщений: 17

Использование сети Tor

01.08.2017, 01:32. Показов 8222. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, пишу сюда, потому что уже просто перерыл весь инэт и ничего полезного не нашёл

Требуется отправлять запросы через Tor сеть, получая от него прокси

Перед включением программы запускаю сам tor, потом могу спокойно получать прокси,это происходит всего в 2 строки

Python
1
2
3
4
proxies = {
    'http': 'socks5://localhost:9050',
    'https': 'socks5://localhost:9050'
}
Но требуется обновлять прокси в определенный промежуток времени и тут проблема.

В инэте нашёл такой код для обновления прокси без перезапуска процесса
Python
1
2
3
4
5
6
7
8
9
10
11
12
from stem import Signal
from stem.control import Controller
import requests
import time
 
 
# signal TOR for a new connection 
def renew_connection():
    with Controller.from_port(port = 9051) as controller:
        controller.authenticate()
        controller.signal(Signal.NEWNYM)
        time.sleep(controller.get_newnym_wait())
В ответ на запуск этого кода я получаю вот такую ошибку:
stem.SocketError: [WinError 10061] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение

Также нашёл на cyberforum пост, в котором практически то же метод, только на C#, может кому интересно
Но при запуске валит ту же ошибку
C#
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
48
49
50
51
52
53
54
        public void RefreshTor()
        {//Конектимся к тору и обновляемм IP
            if (countConnection < 10)
            {
                IPEndPoint ip = new IPEndPoint(IPAddress.Parse(soks), 9151);
                Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                try
                {
                    server.Connect(ip);
                }
                catch (SocketException ex)
                {
                    Console.WriteLine("Unable to connect to server.\r\n" + ex.Message);
                    RefreshTor();
                    return;
                }
                //сигнал о 
                server.Send(Encoding.ASCII.GetBytes("AUTHENTICATE "123456"\n")); // ТУТ ВАШ ПАРОЛЬ, пароль задается через телнет командой: tor --hash-password 'new_tor_password'
 
                if (GetDataReceive(server).Contains("250"))
                {
                    Console.WriteLine("AUTHENTICATE 250 OK");
                    //сигнал о завершении смены цепочки серверов
                    server.Send(Encoding.ASCII.GetBytes("SETEVENTS SIGNAL\r\n"));
                    //if (GetDataReceive(server).Contains("650"))
                    //{
                    //    SendMessageLog("SETEVENTS SIGNAL 650 OK");
                    server.Send(Encoding.ASCII.GetBytes("SIGNAL NEWNYM\r\n"));
                    if (!GetDataReceive(server).Contains("250"))
                    {
                        Console.WriteLine("Unable to signal new user to server.");
                        server.Shutdown(SocketShutdown.Both);
                        server.Close();
                        countConnection++;
                        RefreshTor();
                    }
                    else
                    {
                        Console.WriteLine("SIGNAL NEWNYM 250 OK");
                        countConnection = 0;
                    }
                    // }
                }
                else
                {
                    Console.WriteLine("Unable to authenticate to server.");
                    server.Shutdown(SocketShutdown.Both);
                    server.Close();
                    RefreshTor();
                }
                server.Shutdown(SocketShutdown.Both);
                server.Close();
            }
        }

Может кто работал с Tor и может что-нибудь подсказать?
Может дело в не правильной настройке самого tor (файла torcc)?
Можно ли как-то настроить через Vidalia?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.08.2017, 01:32
Ответы с готовыми решениями:

Использование сети TOR
Здравствуйте, Уважаемые форумчане. В связи с закручиванием гаек в интернете решил для себя изучить такую тему как ТОР и I2P, хотя бы...

Использование сети Tor в качестве прокси
В качестве прокси используется сеть tor. Для смены IP bat-файлом перезапускается Tor Browser. Код батника: taskkill /f /im tor.exe /t ...

Как подключиться к сети Tor без использования Tor-браузера?
Здравствуйте. Подскажите пожалуйста, как реализовать на Delphi подключение к сети TOR ? Т.е напрямую, без использования самого Tor -...

7
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
01.08.2017, 13:58
Лучший ответ Сообщение было отмечено student1234 как решение

Решение

Хороший вопрос.
Bash
1
2
3
cat /etc/tor/torrc | grep Control
ControlPort 9051
HashedControlPassword [skip]
Создаём пароль:
Bash
1
tor --hash-password 'pass'
И теперь пообщаемся с демоном тора:
Bash
1
2
3
4
5
nc 127.0.0.1 9051
AUTHENTICATE "pass"
250 OK
SETEVENTS SIGNAL
250 OK
Добавлено через 2 минуты
Bash
1
2
3
signal newnym
250 OK
650 SIGNAL NEWNYM
Должен быть код ответа 650.
1
1 / 1 / 0
Регистрация: 21.06.2017
Сообщений: 17
02.08.2017, 01:04  [ТС]
Может задаю глупый вопрос, но когда я скачал tor, в файле torcc находится лишь:

# This file was generated by Tor; if you edit it, comments will not be preserved
# The old torrc file was renamed to torrc.orig.1 or similar, and Tor will ignore it

ControlPort 9051
DataDirectory C:/Users/ASUS/AppData/Roaming/tor
GeoIPFile D:\Programs\Tor Browser\Browser\TorBrowser\Data\Tor\geoi p
GeoIPv6File D:\Programs\Tor Browser\Browser\TorBrowser\Data\Tor\geoi p6
Log notice stdout
SocksPort 9050

Можно ли Hash дописать самому?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
02.08.2017, 07:11
Можно, следующая команда выдаст хэш пароля:
Bash
1
tor --hash-password 'pass'
Просто дописываете в конфиг строку:
Code
1
HashedControlPassword хэш
И перезапускаете демона.

Добавлено через 19 минут
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
#!/usr/bin/env python3
import socket
 
 
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')
 
 
raw_password = 'pass'
 
with socket.socket() as s:
    s.connect(('127.0.0.1', 9051))
    send(s, 'authenticate "%s"' % raw_password)
    send(s, 'setevents signal')
    send(s, 'signal newnym')
1
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.08.2017, 10:05
Там телнет протокол, т.е лучше не сокеты использовать а библиотеку-телнетклиент
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
02.08.2017, 10:55
Avazart, что-то не работает:
Python
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python3
import telnetlib
 
t = telnetlib.Telnet(host='127.0.0.1', port=9051)
print('1')
t.write(b'authenticate "pass"\n\n')
print('2')
#t.read_until(b'250 ')
print(t.read_all())  # висит здесь
#t.write(b'setevents signal\n')
#t.close()
Ну фиг с ней.
0
1 / 1 / 0
Регистрация: 21.06.2017
Сообщений: 17
02.08.2017, 14:24  [ТС]
Спасибо большое!

Добавлено через 1 час 13 минут
На винде есть баг с TOR

Bash
1
tor.exe --hash-password 'pass'
Ничего не выводит

Для этого нужно задать вот так:
Bash
1
tor.exe --hash-password 'pass' | more
0
02.08.2017, 15:56

Не по теме:

Рыжий Лис, Я делал такое в С++Builder через telnet, работало нормально.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2017, 15:56
Помогаю со студенческими работами здесь

Что вы скажете о таких вещах,как Tor? И почему,кстати,гугл находит сайты сети TOR?
Что вы скажете о таких вещах,как Tor? И почему,кстати,гугл находит сайты сети TOR? Я криптографию,безопасность и т.п вообще не знаю,но...

Использование Tor
Дарова всем. Возможно (а я знаю, что да) ли как-то внедрить Tor в своё приложение? Т.е. при каждом запуске программы, софт автоматически...

Создать мощную платформу маркетплейс в TOR сети
создать мощную платформу маркетплейс в TOR сети с защитой. Требуется высокий уровень исполнителя. С защитой, бекапами итд.. Писать только...

Настройка работы через сеть Tor в сети интеренет
Доброе времени суток уважаемые форумчани. Есть вопрос как настроить Linux машину что бы весь ее трафик шел через сеть tor. На данный момент...

Не могу запустить Tor Browser и Tor Expert Bundle, Permission denied [WSAEACCES ]
Вчера вечером нормально пользовался TorExpertBundle, он в штатном режиме биндился на 127.0.0.1:9050. Спустя примерно 12 часов пробую...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru