Python 通过 tor 连接到 IRC

Python Connect to IRC via tor

是否可以通过 tor 连接 IRC?

下面是我的 IRC 服务器连接代码:

    connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    connection.connect((self.server, self.port))
    connection.send(
        'USER {nickname} {nickname} {nickname} {nickname}\n'.format(nickname=self.nickname).encode('utf-8')
    )
    connection.send('NICK {nickname}\n'.format(nickname=self.nickname).encode('utf-8'))

通过 SOCKS that Tor exposes 连接可能是最简单的方法。

Python 库 PySocks 适合我,正常安装:

pip install -U PySocks

然后做:

import socks

# assuming your Tor client is using the defaults
socks.set_default_proxy(socks.PROXY_TYPE_SOCKS5, 'localhost', 9150)

然后您可以使用 socks.socksocket class 正常建立 TCP 连接,这将导致实际连接通过 Tor

import socket

with socks.socksocket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect(('chat.freenode.net', 6667))
    s.send('USER {0} {0} {0} {0}\r\n'.format(nickname).encode('utf8'))
    s.send('NICK {0}\r\n'.format(nickname).encode('utf8'))
    print(s.recv(4096).decode('utf8'))