Подключение через 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)
Другие вопросы по тегам