如何使基于扭曲的 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 代理连接?的主要内容,如果未能解决你的问题,请参考以下文章