DEV Community

Arth
Arth

Posted on • Edited on

4 6

How to make requests over Tor?

To make requests over Tor using Python3, we are going to be utilizing a Python controller library for Tor called Stem.

In order to do so, you need to install the stem package for your OS.

  • For MacOS : pip3 install stem in a python3 venv ( recommended ).

  • For Ubuntu : sudo pip3 install stem in a python3 venv ( recommended ).

from stem import Signal
from stem.control import Controller

with Controller.from_port(port = 9051) as controller:
    controller.authenticate(password='your password set for tor controller port in torrc')
    print("Success!")
    controller.signal(Signal.NEWNYM)
    print("New Tor connection processed")
Enter fullscreen mode Exit fullscreen mode

However, you're not done yet. You might get this error :
get this error: error(61, 'Connection refused').
It's because Port 9051 is not open on your machine yet.
To fix this issue, you'll need to edit your torrc file and uncomment the corresponding lines.

ControlPort 9051
## If you enable the controlport, be sure to enable one of these
## authentication methods, to prevent attackers from accessing it.
HashedControlPassword16:<your_password>
Enter fullscreen mode Exit fullscreen mode

To generate your password, run :

tor --hash-password "<new_password>"
Enter fullscreen mode Exit fullscreen mode

where <new_password> is the password that you want to set.

And you're done with Making Requests over Tor.

Note : To run the tor commands, you need to have tor package installed. For MacOS, it can be easily installed using brew install tor.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay