首页 文章

处理IRC聊天机器人应用程序的全局禁令

提问于
浏览
2

我有一个IRC聊天机器人,我使用Node.js JavaScript为TwitchTV上的广播公司开发 . 我从我的家用电脑上运行它,我知道如果IRC发送太多消息或泛滥,IRC将全局禁止IP地址 .

我想打开其他广播公司的聊天机器人,但是我担心如果不同的机器人我会被全球禁止(我设置它以便广播公司可以为他们的机器人创建一个新帐户,因此名称是根据他们的 Channels 量身定制的)从单个全球IP发送消息 .

我可以使用哪些技术,每个广播公司都可以从机器人那里获得他们的消息而不会被全球禁止?

这是一个机器人的例子,它可以同时在多个 Channels 中发送消息而不会被禁止:

http://www.twitch.tv/moobot

我已经问过创作者他们是否可以给我一些提示,但他们几乎说不 .

1 回答

  • 1

    您应该知道一些限制,并且您可以/不应该超过:

    每个IP /子网

    • Clones
      大多数网络限制来自单个IP的并发连接数量(有时,尤其是IPv6甚至整个子网) . 对于每个网络,此限制是不同的,以及当此限制超过时如何处理 . 有些网络会创建一个g线(全局网络禁止你的IP),其他网络只会丢弃任何新的连接 .

    每个连接

    • Channel Limit
      您可以同时使用多少个 Channels . 此限制是每个连接,因此添加其他连接会使您需要克隆的最大通道倍增 .

    每个连接

    • Rate Limit 每个连接只允许在给定时间内将一定数量的数据发送到服务器 . 这可以很容易地从5个命令/秒到复杂,其中不同的命令向阈值添加不同的量 .

    那你怎么能绕过这个限制呢?

    • Clones
      最好的方法是获得一个例外,一个信任 . 如何获得一个或如果你甚至可以得到一个取决于网络(政策) .

    • Channel Limit
      网络中的某些服务器可能允许更多的信道进入 . 某些网络可以允许某些用户获得更高的限制 . 再次询问您的IRCop或使用克隆 .

    • Rate Limit
      询问您的IRCop或使用克隆 . 实现队列以避免为 Excess Flood 断开连接 .

    总结:

    您不应该为每个通道使用单个连接 . 虽然这为您提供了为每个 Channels 选择不同名称的好处,但这被视为大多数网络上的资源浪费 .
    更好地使用中性名称并将其用于多个渠道 . 点击 Channels 上限后,使用克隆 .

    为了避免被踢为 excess flood ,实施一个队列来保持线路(你身边的速率限制) .

    切勿连接超过允许的并发连接数量到网络 .
    这包括"Ghosts",最近被删除但仍然是"on the server"的连接 . (防止g线将限制除以2或等待3分钟(或更长),然后重新连接)

    编辑

    看完抽搐之后看起来这个抽搐不使用IRC网络,而是使用几个IRC服务器 . 这使它更简单,更复杂:

    • 如果可能,您应该查找相应的DNS名称并使用现有连接(使用相同的IP) .

    • 使用单个用户名 .

相关问题