我在使用stem时遇到错误

1 投票
1 回答
1316 浏览
提问于 2025-04-18 00:54

我正在尝试通过我的脚本来更换TOR的IP地址。

这是我用来在TOR中执行NEWNYM的函数:

from stem.connection import connect_port
from stem import Signal
from stem.control import Controller
def connectTor():
    controller = connect_port(address='127.0.0.1', port=9150)
    controller.connect_port()
    controller.authenticate()
    controller.signal(Signal.NEWNYM)

但是我遇到了错误:

TypeError: __init__() takes exactly 2 arguments (3 given)

我哪里做错了?你能帮我吗?谢谢你!

更新:完整的错误追踪信息:

Traceback (most recent call last):
  File "D:/python/projects/tor/main.py", line 33, in <module>
    connectTor()
  File "D:/python/projects/tor/main.py", line 15, in connectTor
    controller = connect_port(port=9150)
  File "C:\Python27\32\lib\site-packages\stem\connection.py", line 171, in connect_port
    control_port = stem.socket.ControlPort(address, port)
  File "C:\Python27\32\lib\site-packages\stem\socket.py", line 350, in __init__
    self.connect()
  File "C:\Python27\32\lib\site-packages\stem\socket.py", line 223, in connect
    self._socket = self._make_socket()
  File "C:\Python27\32\lib\site-packages\stem\socket.py", line 376, in _make_socket
    control_socket.connect((self._control_addr, self._control_port))
  File "D:\python\projects\tor\socks.py", line 369, in connect
    self.__negotiatesocks5(destpair[0],destpair[1])
  File "D:\python\projects\tor\socks.py", line 236, in __negotiatesocks5
    raise Socks5Error(ord(resp[1]),_generalerrors[ord(resp[1])])
TypeError: __init__() takes exactly 2 arguments (3 given)

附言:抱歉我的英语不好……

1 个回答

0

connect_port() 方法会给你一个控制器实例。这个控制器本身没有自己的 'connect_port()' 方法,所以我很惊讶为什么 "controller.connect_port()" 这一行没有出错。

频繁更换你的 IP 地址是不被推荐的,因为这会对网络造成伤害。请查看...

https://stem.torproject.org/faq.html#how-do-i-request-a-new-identity-from-tor

撰写回答