Python - управляющий Tor
Я пытаюсь контролировать Tor с Python. Я прочитал несколько других вопросов, заданных по этому вопросу в stackoverflow, но никто из них не ответил на этот вопрос.
Я ищу метод, который даст вам новый идентификатор, новый IP-адрес, когда будет запущена команда. Я googled вокруг и нашел модуль TorCtl как метод для управления, но не может найти способ получить новую идентификацию. Вот то, что у меня до сих пор, по крайней мере, для соединения с тором, но не могу получить дальше.
from TorCtl import TorCtl
conn = TorCtl.connect(controlAddr="127.0.0.1", controlPort=9051, passphrase="123")
Любая помощь по этому поводу оценивается, если есть другие модули, лучше TorCtl, и это тоже здорово! Спасибо!
Ответы
Ответ 1
Ну, из-за удачи мне удалось найти PHP script, который сделал то же самое, что я хотел, и с помощью этого я преобразовал его для работы в TorCtl. Это то, что похоже на кого-то еще, нуждающегося в этом в будущем!
from TorCtl import TorCtl
conn = TorCtl.connect(controlAddr="127.0.0.1", controlPort=9051, passphrase="123")
TorCtl.Connection.send_signal(conn, "NEWNYM")
Ответ 2
Вы можете использовать аналогичный код в python:
def renewTorIdentity(self, passAuth):
try:
s = socket.socket()
s.connect(('localhost', 9051))
s.send('AUTHENTICATE "{0}"\r\n'.format(passAuth))
resp = s.recv(1024)
if resp.startswith('250'):
s.send("signal NEWNYM\r\n")
resp = s.recv(1024)
if resp.startswith('250'):
print "Identity renewed"
else:
print "response 2:", resp
else:
print "response 1:", resp
except Exception as e:
print "Can't renew identity: ", e
Вы можете проверить этот пост для мини-учебника
Ответ 3
По-видимому, стебель-пакет работает лучше. Вы можете установить tor на свой компьютер и поддерживать его работу в терминале. Затем запустите следующую программу:
from stem import Signal
from stem.control import Controller
with Controller.from_port(port = 9051) as controller:
controller.authenticate()
controller.signal(Signal.NEWNYM)
stem - официальный пакет, разработанный tor.org, и вы можете увидеть их документация