1

如何以一种相当自动化的方式向 IRC 频道中房间中的所有用户发送相同的私人消息,即不必为所有用户逐一手动执行,也不必在频道房间中发布消息。明智地使用,当然。

4

3 回答 3

0

正如您在描述 IRC 协议的RFC 1459中所见,私人消息在技术上与通道消息没有区别。两者都是PRIVMSG 命令的结果。

PRIVMSG命令允许任何客户端使用以下语法向多个收件人发送消息:

  1. PRIVMSG foo,bar[,anon] :Hi there为用户
  2. PRIVMSG #help,#home[,#irc] :Hi there对于频道
  3. 这也应该混合使用。

所以基本上,单个目标必须是渠道或用户。

据我所知,没有办法做到这一点,因为每个目标都必须在命令的第一个参数中定义。

于 2012-12-05T18:42:19.980 回答
0

这取决于您的网络。一些网络支持 wallmsg,它在许多 IRC 客户端上工作,作为给用户的私人消息。这是在 efnet 上实现的,例如通过向@#channel 发送消息,然后将消息分发给所有通道操作。同样使用 + 向所有语音用户发送消息。不幸的是,这不适用于非操作/语音用户。这通过做PRIVMSG @#channel :Hi!

为了能够以自动化方式做到这一点,您需要编写一个简单的脚本(无法帮助您,您还没有说明您的客户)循环所有用户,然后向他们发送一个 PRIVMSG一种或在群发消息模式下,您可以用逗号(并且没有空格)分隔用户,例如PRIVMSG user1,user2,user3 :message.

您很可能想要后一种选择。不过要小心你的洪水阈值!

于 2013-09-08T17:07:12.750 回答
0
You could add a line to your mirc popups nick list

...message all selected {%i = 0 | %nicks = "" | :nextnick | inc %i | if ($snick(#,%i) == $null) { if ($len(%nicks) > 0) /msg  %nicks $$?="message " | halt } | %nicks = %nicks $snick(#,%i) | if (4 // %i) { /msg  %nicks $$?="message " | %nicks = "" } | goto nextnick | } 

我在我的网络上使用它以及 op all 和 deop all 或 kick all

于 2018-07-17T16:42:59.120 回答