当前位置: 首页 > 面试题库 >

如何在Python中更改Tor身份?

谭炎彬
2023-03-14
问题内容

我有以下脚本:

import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket
import urllib2

print(urllib2.urlopen("http://www.ifconfig.me/ip").read())

使用tor和SocksiPy

现在,我想更改每个请求的tor身份,例如:

for i in range(0, 10):
   #somehow change tor identity
   print(urllib2.urlopen("http://www.ifconfig.me/ip").read())

我怎样才能做到这一点?


问题答案:

今天,我对这个问题进行了很多搜索,最后设法回答了自己。但是在我不得不说pirvoxy和tor应该正确配置之前。第一个脚本,然后是一些配置:

import urllib2
from TorCtl import TorCtl

proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})
opener = urllib2.build_opener(proxy_support)

def newId():
    conn = TorCtl.connect(controlAddr="127.0.0.1", controlPort=9051, passphrase="your_password")
    conn.send_signal("NEWNYM")

for i in range(0, 10):
    print "case "+str(i+1)
    newId()
    proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})
    urllib2.install_opener(opener)
    print(urllib2.urlopen("http://www.ifconfig.me/ip").read())

上面的脚本获取了新的IP并从ifconfig.me网站进行了检查。关于配置:我们需要Privoxy。要将TOR与HTTP连接一起使用,privoxy应该与tor一起使用。我们可以通过在/
etc / privoxy / config文件中添加thi来做到这一点:

forward-socks5 / localhost:9050 . #dot is important at the end

然后在/ etc / tor / torrc文件中配置ControlPort。我们只需要取消以下行的注释:

ControlPort 9051
## If you enable the controlport, be sure to enable one of these
## authentication methods, to prevent attackers from accessing it.
HashedControlPassword 16:872860B76453A77D60CA2BB8C1A7042072093276A3D701AD684053EC4C

然后我们重新启动tor:

/etc/init.d/tor restart


 类似资料:
  • 问题内容: 听起来这是一个简单的问题,但是我找不到在python中用matplotlib制作的图中更改字体(不是字体大小)的有效解决方案。 我找到了一些教程,可通过修改matplotlib存储默认字体的文件夹中的一些文件来更改matplotlib的默认字体- 请参阅此博客文章-但我正在寻找一种不太激进的解决方案,因为我想使用多个我的绘图中的字体(文本,标签,轴标签等)。 问题答案: 假设您要使用C

  • 问题内容: 我正在按照以下内容进行编写,其中在比较两个Unicode文本的多行块时,我试图产生一个不错的错误消息。进行比较的内部方法会引发一个断言,但是默认的解释对我没有用 我需要在代码中添加如下内容: 我无法弄清楚如何在我捕获的assertionerror中更改打印的错误消息。我总是得到,它仅显示输出的第一行。 如何更改断言消息以打印出我想要的任何内容? 如果相关的话,我正在运行测试。 问题答案

  • 问题内容: 是用于更改工作目录的shell命令。 如何在Python中更改当前的工作目录? 问题答案: 你可以使用以下命令更改工作目录: 使用此方法时,有两个最佳实践: 在无效路径上捕获异常(WindowsError,OSError)。如果抛出异常,请不要执行任何递归操作,尤其是破坏性操作。它们将沿旧路径而不是新路径运行。 完成后,返回到旧目录。可以通过将chdir调用包装在上下文管理器中以异常安

  • 问题内容: 我正在使用Debian。我安装了Python 3.2.3。Python 3的路径是/ usr / bin / python3。如何在Spyder中更改它? 问题答案: 按下以打开“首选项”窗口。在此窗口中,选择左侧的项目,然后选择选项卡。Python可执行文件的路径就在此处。

  • 问题内容: 我有一个XML文档,在它已经包含数据之后,我想对其进行更新。 我考虑过要在(附加)模式下打开XML文件。问题在于新数据将在根结束标记之后写入。 如何删除文件的最后一行,然后从该点开始写入数据,然后关闭根标签? 当然,我可以读取整个文件并进行一些字符串操作,但是我认为这不是最好的主意。 谢谢你的时间。 问题答案: 您绝对 不应该做 的快速简便的方法(请参阅下文)是使用来将整个文件读入字符

  • 问题内容: 我想在程序获取某些特殊单词的同时,实时地绘制它们。所以我写了一段很好的代码,但是我仍然不能用键盘上的移动键改变指针的位置,并从我移动的位置开始输入文字。谁能给我一个提示,怎么做?这是代码: 问题答案: 轻松做到 正如您似乎已经在使用该模块一样,最简单易行的光标定位方式应该是使用相应的ANSI控件序列(请参阅:http : //en.m.wikipedia.org/wiki/ANSI_e