【问题标题】:IRC Bot not connecting to the channelIRC Bot 未连接到频道
【发布时间】:2013-11-07 07:50:42
【问题描述】:

我正在关注这个网站上的教程:http://wiki.shellium.org/w/Writing_an_IRC_bot_in_Python

当我在 Ubuntu 中打开终端并运行 screen python ircbot.py 时,以下是我收到的消息。

:irc.codetalk.io NOTICE AUTH :*** Looking up your hostname...
:irc.codetalk.io NOTICE AUTH :*** Couldn't resolve your hostname; using your IP address   instead
PING :8F0ECB12
:irc.codetalk.io 451 JOIN :You have not registered
:8F0ECB12!nospoof@irc.codetalk.io PRIVMSG multhafa :VERSION

我不知道这之后该怎么办。如何将其连接到特定频道并实际查看用户列表中的昵称。这是我第一次接触这种项目。

更新:我在终端运行 screen python ircbot.py 2 分钟后,我的笔记本电脑崩溃了。它发生了两次。谁能告诉我为什么?

【问题讨论】:

  • 看来你需要注册才能访问这个IRC服务器。
  • 错误 451 是 ERR_NOTREGISTERED。据我所知,这意味着服务器认为您没有正确注册。根据the RFC,要注册,您应该 1. 如有必要,发送PASS 消息; 2.发送NICK消息; 3. 发送USER 消息。确保您正确地执行此操作。 (实际上,该教程看起来很糟糕。您应该解析消息,而不仅仅是在它们上使用find()。此外,send 可能只发送部分消息,并且它没有处理这种情况。列表还在继续。 )

标签: python irc


【解决方案1】:

注意

PING :8F0ECB12

线。要完成注册,您必须正确回答此问题,使用

PONG :8F0ECB12

这可能违反了 RFC,但大多数客户对此没有问题(只需回答任何 PING 消息)。

添加了此必需的 PONG 响应以防止 IRC 端口上的 HTTP-POST 请求。
以前,可以使用特制的 POST 请求连接到 IRC 服务器、加入频道并发送一些垃圾邮件。 HTTP 请求会在一段时间后超时(响应无用),但损坏已经造成。 (也许你还记得 freenode 的黑暗时期)。

【讨论】:

  • 如何发送 PONG 消息?
  • 如何发送USER等?
  • 是的,我是个新手。那么了解 HOW 代码真的会有帮助吗?
猜你喜欢
  • 1970-01-01
  • 2016-12-21
  • 2010-12-12
  • 1970-01-01
  • 2012-10-04
  • 2015-03-10
  • 2011-10-05
  • 2022-01-05
  • 2015-03-23
相关资源
最近更新 更多