Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Tor网络上运行python脚本_Python_Security_Tor - Fatal编程技术网

如何在Tor网络上运行python脚本

如何在Tor网络上运行python脚本,python,security,tor,Python,Security,Tor,我正在用python编写一个程序,试图让它通过tor网络而不是静态运行。 我该怎么做?我正在使用python 3.8、tor 10.0.6和win 10。我只需要连接到https网站如果您已经安装了Tor,那么它应该可以作为代理服务器127.0.0.1:9050,您可以在请求等模块中使用它 在这个例子中,我使用portalhttpbin.org来测试我的IP import requests proxy = { 'http': 'socks5://localhost:9050',

我正在用python编写一个程序,试图让它通过tor网络而不是静态运行。
我该怎么做?我正在使用python 3.8、tor 10.0.6和win 10。我只需要连接到https网站

如果您已经安装了
Tor
,那么它应该可以作为代理服务器
127.0.0.1:9050
,您可以在
请求
等模块中使用它

在这个例子中,我使用portal
httpbin.org
来测试我的IP

import requests

proxy = {
    'http':  'socks5://localhost:9050',
    'https': 'socks5://localhost:9050',
}

url = 'https://httpbin.org/get'

r = requests.get(url, proxies=proxy)  # using TOR network
#print(r.text)
print('   Tor IP:', r.json()['origin'])

r = requests.get(url)
#print(r.text)
print('normal IP:', r.json()['origin'])
这一刻,它告诉我:

   Tor IP: 146.59.155.27
normal IP: 217.99.86.56

但这几乎会一直使用相同的
或IP

如果要更改
IP
,则必须重新启动
Tor

或者您必须在
Tor
设置中配置
ControlPort
Password
(在Linux上,文件
/etc/Tor/torrc

然后,您可以通过使用套接字发送信号来更改
或IP

import socket

s = socket.socket()
s.connect(('localhost', 9051))
s.send('AUTHENTICATE "your_passord"\r\nSIGNAL NEWNYM\r\n'.encode())
或者,您也可以使用模块
阀杆

from stem import Signal
from stem.control import Controller

with Controller.from_port(port=9051) as controller:
    controller.authenticate(password='your_password')
    controller.signal(Signal.NEWNYM)
您可以在
Stackoverflow
上找到许多问题,这些问题可以更好地描述它



正如我所知,在发送信号后,可能需要几秒钟才能获得新的
Tor IP
,因此您可能需要等待下一个请求。

如果您想使用
Tor
连接到网页,那么您必须使用
代理服务器,该服务器由
Tor
运行,在
请求
等模块中,您应该有
请求。获取(…,proxy=…)
在连接中使用
tor
。顺便说一句:与正常web浏览器使用
tor
的方式相同-在web浏览器设置中,必须将
tor
设置为代理服务器。