从 bash 发送消息到 IRC 频道

从 bash 发送消息到 IRC 频道

ircd-hybrid我已经在我的 Ubuntu Server(192.168.1.2,example.com)上安装了。
我们用#teamchannel它来在团队内部沟通。

问题是:我怎样才能从 bash 脚本发送一些短消息?example.com例如#teamchannelexample.com: Alert! The server is rebooting now

编辑:

我已经发现perl 脚本这正是我需要的。

答案1

使用控制台 irc 客户端

apt-get install ii
ii -i /tmp -s 192.168.1.2
echo "/PRIVMSG #teamchannel example.com: Alert! The server is rebooting now" > /tmp/irc/in

答案2

IRC 是一个简单的文本和行导向协议,因此可以使用基本的 Linux 工具来完成。因此,无需安装ii

echo -e 'USER bot guest tolmoon tolsun\nNICK bot\nJOIN #channel\nPRIVMSG #channel :Ahoj lidi!\nQUIT\n' \
| nc irc.freenode.net 6667

在此命令中,nc网络连接,您发送登录信息、昵称,加入名为“#channel”的频道,并向该频道发送消息“Ahoj lidi!”。然后退出服务器。

答案3

一个解决方案是使用预计使用 telnet 客户端编写与 IRC 服务器通信的脚本。

答案4

如果您需要提供密码并使用 ssl,您可以执行类似这样的操作。

#!/bin/bash -e

USER=$1
MYPASSWORD=$2
IRC_SERVER=$3
IRC_PORT=$4
CHANNEL=$5
MSG=$6

(
echo NICK $USER
echo USER $USER 8 * : $USER
sleep 1
echo PASS $USER:$MYPASSWORD
echo "JOIN $CHANNEL"
echo "PRIVMSG $CHANNEL" $MSG
echo QUIT
) | ncat --ssl $IRC_SERVER $IRC_PORT

该脚本应像这样运行:

./post_to_irc.sh your_user your_pass irc_server 6667 "#target-channel" "Your message"

这与之前使用的示例类似nc,但我发现我必须使用它ncat才能使其与已设置 SSL 的 IRC 服务器一起工作。

相关内容