import socket

irc = 'irc.hack3r.com'
port = 6667
channel = '#chat'
sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sck.connect((irc, port))
sck.send('NICK supaBOT\r\n')
sck.send('USER supaBOT supaBOT supaBOT :supaBOT Script\r\n')
sck.send('JOIN #chat' + '\r\n')
data = ''
while True:
     data = sck.recv(4096)
     if data.find('PING') != -1:
        sck.send('PONG ' + data.split() [1] + '\r\n')
        print data

print sck.recv(4096)

当我连接到服务器时,无法加入频道,会出现以下错误:
“451加入:您尚未注册”

最佳答案

听起来你没有注册,这是加入该频道的要求。你必须注册你的尼克,然后在加入之前确认身份。
另外,尝试使用裸套接字制作irc bot也不是一个好主意。这段代码没有将rfc 1459实现到一个有用的水平,它将程序逻辑与网络融合在一起。考虑使用网络库(如Twisted)。twisted.words有一个很棒的irc协议实现)或者编写与irc协议相当的代码。(提示:前者更容易、更快,也不容易出现错误。)

08-27 18:36