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

时间:2013-10-09 09:37:59

标签: python twisted irc socks

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

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

然而,这样做可以在使用irclib的SimpleIRCClient时解决问题,但是irclib不适合其他要求。

感谢。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

感谢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()