如何使基于twisted的irc客户端通过socks代理进行连接?

2024-10-02 20:41:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是基于twisted的markov chain irc bot。Socks代理可能是putty,监听端口22。 将以下代码添加到上面的客户端(在py文件的顶部)没有帮助:

import socks, socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,
    'localhost', 22)
socket.socket = socks.socksocket

然而,这样做在使用irclib中的SimpleIRCClient时解决了这个问题,但是irclib不适合其他需求。在

谢谢。在


Tags: 端口代码py客户端代理chainircbot
2条回答

使用socks客户端库-https://github.com/habnabit/txsocksx。在

谢谢Jean-Paul Calderone。下面的代码对我有用。在

from twisted.internet.endpoints import TCP4ClientEndpoint 
from txsocksx.client import SOCKS5ClientEndpoint

if __name__ == "__main__":
    chan = "django-hotclub"
    chain_length = 5

    myID = sys.argv[1]
    counterpartID = sys.argv[2]

    puttyEndPoint = TCP4ClientEndpoint(reactor, '127.0.0.1', 22)
    ircEndpoint = SOCKS5ClientEndpoint('irc.freenode.net', 6667, puttyEndPoint)
    d = ircEndpoint.connect(MomBotFactory('#' + chan, myID, counterpartID, chain_length, chattiness=0.05))
    reactor.run()

相关问题 更多 >