【发布时间】:2012-05-09 12:17:24
【问题描述】:
我目前正在尝试制作一个简单的 IRC Gui 客户端。我使用 SmartIrc4net 作为基础,因为它似乎是所有这些中最支持的,在这里找到:http://www.codeproject.com/Articles/8323/SmartIrc4net-the-C-IRC-library
现在我遇到的问题是操作命令。例如,要让自己成为一名操作员,您可以输入
/oper 管理员密码或更改主机,将是 /sethost mynewhost
我的问题是,当我通过 TextBox 传递该值时,而不是让我成为管理员或更改我的主机。我的输入只是在聊天中显示为文本。
这是我的代码:
string[] serverlist;
serverlist = new string[] { "mydomain.com" };
int port = 6667;
string channel = "#MyChannel#";
try
{
irc.Connect(serverlist, port);
irc.Login("SmartIRC", "SmartIrc4net Test Bot");
irc.RfcJoin(channel);
irc.SendMessage(SendType.Message, channel, "/oper admin mypass");
irc.SendMessage(SendType.Action, channel, "/sethost mynewhost");
irc.Listen();
但是当我传递这些值时,它所做的只是显示我在聊天中输入的内容,而不会真正让我操作或更改我的 sethost。
我是否真的可以让它将命令传递到 IRC 服务器,而不仅仅是在聊天中显示原始文本?
任何帮助将不胜感激,谢谢
【问题讨论】:
-
研究 IRC 协议。 IRC 客户端不会将 /oper 作为 PRIVMSG 发送到服务器,而是作为 OPER 命令发送。您可以从运行 wireshark 开始,使用连接到某个服务器的 IRC 客户端,输入命令,然后查看 WS 究竟是通过电线发送的内容。
-
是的,我刚刚检查了 Wireshark,发现使用 PRIVMSG 发送正常消息,而 OPER 和 SETHOST 等命令前面没有 PRIVMSG。现在我如何让我的命令没有 PPRIVMSG Infront 呢?感谢您的回复