python中的IRC客户端
如果你想重新发明轮子,那么你必须实现RFC并从头开始做所有事情。
如果你不想这样做,并且需要某种程度的抽象来减轻你的开发(和你应该的),那么请参阅Twisted。
还有一个Python IRC client库。
IRC RFC文档是一个重要的参考文献,但我在IRC客户端和服务器之间的通信中找到的最有帮助的第一个介绍非常简单。首先,您需要访问* nix shell(例如运行Linux的Web主机中的ssh)。
在命令行中,使用'nc'程序打开与IRC服务器的直接连接。然后您可以直接键入RFC命令,并查看响应。尝试输入
$ nc wright.freenode.net 6667
PASS whateveryoulike
NICK yournick
USER username 0 * :Real Name
服务器在此输出中,但现在您已经登录并“注册”了您的用户。注意:您的昵称并未注册(ala NickServ),我指的是登录RFC 2812 IRC Client Protocol第3.1部分中列出的用户。
现在,您可以加入一个通道:
JOIN #yourtestchannel
查看谁在出声道:
WHO #yourtestchannel
自己发送一个消息:
PRIVMSG yournick Message Text Here
聊天引入通道(发送通道1味精):
PRIVMSG #yourtestchannel Message Text Here
如果您在真正的IRC客户端中连接到同一台服务器并使用不同的昵称,则此功能特别有用。你可以和自己聊天,并且可以和另一个人交谈,并且看到你需要解析的“原始”IRC输出来编写你自己的客户端或机器人。
例如,有人在聊天频道看起来是这样的:
:[email protected]_various_parts PRIVMSG #channel :Hey guys, what's up?
使用RFC,可以玩弄任何你想要的功能,更重要的是,找出如何,你需要解析事物。
噢,不要忘了PONG偶尔或者在提示PING的时候避免ping超时。
安全通信也很简单吗? – 2014-05-14 11:30:54
+1:用Twisted实现IRC很容易。 – 2010-11-10 18:11:54
我也写了https://irc3.readthedocs.org/与python3/asyncio – gawel 2014-05-10 09:24:56