import socket
import sys
server = "server" #settings
channel = "#channel"
botnick = "botname"
irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #defines the socket
print "connecting to:"+server
irc.connect((server, 6667)) #connects to the server
irc.send("USER "+ botnick +" "+ botnick +" "+ botnick +" :This is a fun bot!\n") #user authentication
irc.send("NICK "+ botnick +"\n") #sets nick
irc.send("PRIVMSG nickserv :iNOOPE\r\n") #auth
irc.send("JOIN "+ channel +"\n") #join the chan
while 1: #puts it in a loop
text=irc.recv(2040) #receive the text
print text #print text to console
if text.find('PING') != -1: #check if 'PING' is found
irc.send('PONG ' + text.split() [1] + '\r\n') #returnes 'PONG' back to the server (prevents pinging out!)
然后,您可以开始设置如下命令:!hi <nick>
if text.find(':!hi') !=-1: #you can change !hi to whatever you want
t = text.split(':!hi') #you can change t and to :)
to = t[1].strip() #this code is for getting the first word after !hi
irc.send('PRIVMSG '+channel+' :Hello '+str(to)+'! \r\n')
要连接到IRC通道,必须先将特定于IRC协议的命令发送到IRC服务器,然后才能执行此操作。
当您连接到服务器时,您必须等到服务器发送了所有数据(MOTD和whatnot),然后您必须发送PASS命令。
接下来是NICK命令。
然后必须发送用户命令。
两者都是强制性的。
然后您可能会看到来自服务器的PING消息,每次服务器向您发送PING消息时,您必须使用PONG命令回复服务器。服务器可能也会在NICK和USER命令之间请求PONG。
使用PONG命令“PING”后用完全相同的文本回复:
PING之后的内容对于我认为的每台服务器都是唯一的,因此请确保您使用服务器发送给您的值进行回复。
现在可以使用join命令连接频道:
现在可以使用PRIVMSG命令向频道和用户发送消息:
退出
尝试使用Telnet!从
有关更多命令和选项,请参见IRC RFC。
希望这有帮助!
我用这个作为主要的IRC代码:
然后,您可以开始设置如下命令:
!hi <nick>
注意,所有
irc.send
文本必须以PRIVMSG
或NOTICE
+channel/user
开头,并且文本应该以:
开头!基于twisted对IRC协议的实现可能是最简单的。看看:http://github.com/brosner/bosnobot寻找灵感。
相关问题 更多 >
编程相关推荐