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

Posted

技术标签:

【中文标题】如何使基于扭曲的 irc 客户端通过 socks 代理连接?【英文标题】:How to cause twisted based irc client to connect through socks proxy? 【发布时间】:2013-10-09 09:37:59 【问题描述】:

我正在使用基于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 不符合其他要求。

谢谢。

【问题讨论】:

等等,它“没有帮助”并且“解决了问题”?你有什么“其他要求”? 例如,定期任务。 periodical tasks with irc client 根据那篇帖子,基于扭曲的客户端更适合定期任务。 【参考方案1】:

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

【讨论】:

【参考方案2】:

感谢让-保罗·卡尔德隆。以下代码对我有用。

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

【讨论】:

以上是关于如何使基于扭曲的 irc 客户端通过 socks 代理连接?的主要内容,如果未能解决你的问题,请参考以下文章

Python 扭曲的 irc:在 privmsg 方法中等待 whois 回复

Python Twisted IRC,发送颜色信息

Irc-bot 使用扭曲与期刊印刷

带有listentcp的扭曲IRCClient

Linux终端 连接 freenode IRC

Linux终端 连接 freenode IRC