Sou*_*urD 2 python sockets irc
sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sck.connect((irc, port))
sck.send('PRIVMSG ' + 'NICKSERV' + 'ghost' + 'supaBOT' + 'htown')
sck.send('NICK supaBOT\r\n')
sck.send('PRIVMSG ' + 'NICKSERV' + 'IDENTIFY' + 'password')
sck.send('USER supaBOT supaBOT supaBOT :supaBOT Script\r\n')
sck.send('JOIN ' + " " + chan + '\r\n')
Run Code Online (Sandbox Code Playgroud)
当我尝试运行脚本时,出现此错误:
trix.gonullyourself.org 451 PRIVMSG You have not registered
trix.gonullyourself.org 451 PRIVMSG You have not registered
trix.gonullyourself.org 451 JOIN You have not registered
: You
Run Code Online (Sandbox Code Playgroud)
昵称 supaBOT 已在服务器上注册,但我不知道如何识别服务器,因为上面的代码不起作用。
就像迈克说的那样,你没有发送你应该发送的数据。您需要在那里添加空格,:如果它们有空格,则需要在最终命令参数之前。某些行也丢失了'\r\n'。
也就是说,a 的格式PRIVMSG是:'PRIVMSG nick :message with spaces\r\n'
PRIVMSG只有两个参数,因此您需要将 放在:那里以指示该行的其余部分只是一个可能包含空格的值。
你得到的原因"You have not registered"是你必须在任何其他命令之前发送USER和NICK命令。如果NICK命令失败(缺口碰撞),您必须检测错误并尝试另一个错误。一旦你发送了一个有效的USER和NICK命令,一些 IRC 网络也会向你发送一个PING,你必须PONG在服务器认为你“注册”之前用响应。之后,您可以使用其他命令。
| 归档时间: |
|
| 查看次数: |
4763 次 |
| 最近记录: |