Подключение через TOR вызывает ошибку
У меня проблемы с подключением к Интернету через TOR. Я следовал всем инструкциям из этого видео на YouTube, но все еще получаю сообщение об ошибке:
Connected to Tor # printed string
Traceback (most recent call last):
....
....
File "C:\Python27\lib\httplib.py", line 787, in connect
self.timeout, self.source_address)
File "C:\Python27\lib\socket.py", line 571, in create_connection
raise err
socket.error: [Errno 10061] No connection could be made because the target machine actively refused it
Я прилагаю код:
import httplib
import socket
import socks
port = 9050
url = 'my-ip.heroku.com'
def connectTor():
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", port, True)
socket.socket = socks.socksocket
def main():
connectTor()
print("Connected to Tor")
conn = httplib.HTTPConnection(url)
conn.request("GET", "/")
response = conn.getresponse()
print(response.read())
if __name__ == "__main__":
main()
Я запутался, потому что сказано, что я должен загрузить TOR с этой страницы: https://www.torproject.org/
- когда я установил его, он работал - я мог запустить браузер TOR и просматривать. Но у этого парня есть панель управления Vidalia, которой у меня нет.
Где может быть проблема?
1 ответ
Вместо непосредственного использования сокетов, вы должны использовать requesocks
библиотека для маршрутизации ваших HTTP-запросов через ваш локальный прокси-сервер SOCKS.
Оттуда настройте свой Session
объект, чтобы использовать ваш локальный прокси для http(s) и затем выдавать произвольные запросы:
session = requests.session()
session.proxies = {'http': 'socks5://127.0.0.1:9050',
'https': 'socks5://127.0.0.1:9050'}
resp = session.get('https://api.github.com', auth=('user', 'pass'))
print(resp.status_code)
print(resp.text)