Network Working Group                                            C. Kalt
Request for Comments: 2812                                    April 2000
Updates: 1459
Category: Informational
        
Network Working Group                                            C. Kalt
Request for Comments: 2812                                    April 2000
Updates: 1459
Category: Informational
        

Internet Relay Chat: Client Protocol

Internet中继聊天:客户端协议

Status of this Memo

本备忘录的状况

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

本备忘录为互联网社区提供信息。它没有规定任何类型的互联网标准。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (2000). All Rights Reserved.

版权所有(C)互联网协会(2000年)。版权所有。

IESG NOTE:

IESG注:

The IRC protocol itself enables several possibilities of transferring data between clients, and just like with other transfer mechanisms like email, the receiver of the data has to be careful about how the data is handled. For more information on security issues with the IRC protocol, see for example http://www.irchelp.org/irchelp/security/.

IRC协议本身支持在客户端之间传输数据的多种可能性,就像电子邮件等其他传输机制一样,数据的接收者必须小心处理数据。有关IRC协议安全问题的更多信息,请参阅示例http://www.irchelp.org/irchelp/security/.

Abstract

摘要

The IRC (Internet Relay Chat) protocol is for use with text based conferencing; the simplest client being any socket program capable of connecting to the server.

IRC(Internet中继聊天)协议用于基于文本的会议;最简单的客户端是任何能够连接到服务器的套接字程序。

This document defines the Client Protocol, and assumes that the reader is familiar with the IRC Architecture [IRC-ARCH].

本文档定义了客户端协议,并假设读者熟悉IRC体系结构[IRC-ARCH]。

Table of Contents

目录

   1.  Labels .....................................................   3
      1.1  Servers ................................................   3
      1.2  Clients ................................................   3
         1.2.1  Users .............................................   4
            1.2.1.1  Operators ....................................   4
         1.2.2  Services ..........................................   4
      1.3  Channels ...............................................   4
   2.  The IRC Client Specification ...............................   5
      2.1  Overview ...............................................   5
      2.2  Character codes ........................................   5
      2.3  Messages ...............................................   5
        
   1.  Labels .....................................................   3
      1.1  Servers ................................................   3
      1.2  Clients ................................................   3
         1.2.1  Users .............................................   4
            1.2.1.1  Operators ....................................   4
         1.2.2  Services ..........................................   4
      1.3  Channels ...............................................   4
   2.  The IRC Client Specification ...............................   5
      2.1  Overview ...............................................   5
      2.2  Character codes ........................................   5
      2.3  Messages ...............................................   5
        
         2.3.1  Message format in Augmented BNF ...................   6
      2.4  Numeric replies ........................................   8
      2.5  Wildcard expressions ...................................   9
   3.  Message Details ............................................   9
      3.1  Connection Registration ................................  10
         3.1.1  Password message ..................................  10
         3.1.2  Nick message ......................................  10
         3.1.3  User message ......................................  11
         3.1.4  Oper message ......................................  12
         3.1.5  User mode message .................................  12
         3.1.6  Service message ...................................  13
         3.1.7  Quit ..............................................  14
         3.1.8  Squit .............................................  15
      3.2  Channel operations .....................................  15
         3.2.1  Join message ......................................  16
         3.2.2  Part message ......................................  17
         3.2.3  Channel mode message ..............................  18
         3.2.4  Topic message .....................................  19
         3.2.5  Names message .....................................  20
         3.2.6  List message ......................................  21
         3.2.7  Invite message ....................................  21
         3.2.8  Kick command ......................................  22
      3.3  Sending messages .......................................  23
         3.3.1  Private messages ..................................  23
         3.3.2  Notice ............................................  24
      3.4  Server queries and commands ............................  25
         3.4.1  Motd message ......................................  25
         3.4.2  Lusers message ....................................  25
         3.4.3  Version message ...................................  26
         3.4.4  Stats message .....................................  26
         3.4.5  Links message .....................................  27
         3.4.6  Time message ......................................  28
         3.4.7  Connect message ...................................  28
         3.4.8  Trace message .....................................  29
         3.4.9  Admin command .....................................  30
         3.4.10 Info command ......................................  31
      3.5  Service Query and Commands .............................  31
         3.5.1  Servlist message ..................................  31
         3.5.2  Squery ............................................  32
      3.6  User based queries .....................................  32
         3.6.1  Who query .........................................  32
         3.6.2  Whois query .......................................  33
         3.6.3  Whowas ............................................  34
      3.7  Miscellaneous messages .................................  34
         3.7.1  Kill message ......................................  35
         3.7.2  Ping message ......................................  36
         3.7.3  Pong message ......................................  37
         3.7.4  Error .............................................  37
        
         2.3.1  Message format in Augmented BNF ...................   6
      2.4  Numeric replies ........................................   8
      2.5  Wildcard expressions ...................................   9
   3.  Message Details ............................................   9
      3.1  Connection Registration ................................  10
         3.1.1  Password message ..................................  10
         3.1.2  Nick message ......................................  10
         3.1.3  User message ......................................  11
         3.1.4  Oper message ......................................  12
         3.1.5  User mode message .................................  12
         3.1.6  Service message ...................................  13
         3.1.7  Quit ..............................................  14
         3.1.8  Squit .............................................  15
      3.2  Channel operations .....................................  15
         3.2.1  Join message ......................................  16
         3.2.2  Part message ......................................  17
         3.2.3  Channel mode message ..............................  18
         3.2.4  Topic message .....................................  19
         3.2.5  Names message .....................................  20
         3.2.6  List message ......................................  21
         3.2.7  Invite message ....................................  21
         3.2.8  Kick command ......................................  22
      3.3  Sending messages .......................................  23
         3.3.1  Private messages ..................................  23
         3.3.2  Notice ............................................  24
      3.4  Server queries and commands ............................  25
         3.4.1  Motd message ......................................  25
         3.4.2  Lusers message ....................................  25
         3.4.3  Version message ...................................  26
         3.4.4  Stats message .....................................  26
         3.4.5  Links message .....................................  27
         3.4.6  Time message ......................................  28
         3.4.7  Connect message ...................................  28
         3.4.8  Trace message .....................................  29
         3.4.9  Admin command .....................................  30
         3.4.10 Info command ......................................  31
      3.5  Service Query and Commands .............................  31
         3.5.1  Servlist message ..................................  31
         3.5.2  Squery ............................................  32
      3.6  User based queries .....................................  32
         3.6.1  Who query .........................................  32
         3.6.2  Whois query .......................................  33
         3.6.3  Whowas ............................................  34
      3.7  Miscellaneous messages .................................  34
         3.7.1  Kill message ......................................  35
         3.7.2  Ping message ......................................  36
         3.7.3  Pong message ......................................  37
         3.7.4  Error .............................................  37
        
   4.  Optional features ..........................................  38
      4.1  Away ...................................................  38
      4.2  Rehash message .........................................  39
      4.3  Die message ............................................  39
      4.4  Restart message ........................................  40
      4.5  Summon message .........................................  40
      4.6  Users ..................................................  41
      4.7  Operwall message .......................................  41
      4.8  Userhost message .......................................  42
      4.9  Ison message ...........................................  42
   5.  Replies ....................................................  43
      5.1  Command responses ......................................  43
      5.2  Error Replies ..........................................  53
      5.3  Reserved numerics ......................................  59
   6.  Current implementations ....................................  60
   7.  Current problems ...........................................  60
      7.1  Nicknames ..............................................  60
      7.2  Limitation of wildcards ................................  61
      7.3  Security considerations ................................  61
   8.  Current support and availability ...........................  61
   9.  Acknowledgements ...........................................  61
   10.  References ................................................  62
   11.  Author's Address ..........................................  62
   12.  Full Copyright Statement ..................................  63
        
   4.  Optional features ..........................................  38
      4.1  Away ...................................................  38
      4.2  Rehash message .........................................  39
      4.3  Die message ............................................  39
      4.4  Restart message ........................................  40
      4.5  Summon message .........................................  40
      4.6  Users ..................................................  41
      4.7  Operwall message .......................................  41
      4.8  Userhost message .......................................  42
      4.9  Ison message ...........................................  42
   5.  Replies ....................................................  43
      5.1  Command responses ......................................  43
      5.2  Error Replies ..........................................  53
      5.3  Reserved numerics ......................................  59
   6.  Current implementations ....................................  60
   7.  Current problems ...........................................  60
      7.1  Nicknames ..............................................  60
      7.2  Limitation of wildcards ................................  61
      7.3  Security considerations ................................  61
   8.  Current support and availability ...........................  61
   9.  Acknowledgements ...........................................  61
   10.  References ................................................  62
   11.  Author's Address ..........................................  62
   12.  Full Copyright Statement ..................................  63
        
1. Labels
1. 标签

This section defines the identifiers used for the various components of the IRC protocol.

本节定义了用于IRC协议各个组件的标识符。

1.1 Servers
1.1 服务器

Servers are uniquely identified by their name, which has a maximum length of sixty three (63) characters. See the protocol grammar rules (section 2.3.1) for what may and may not be used in a server name.

服务器通过其名称进行唯一标识,名称的最大长度为六十三(63)个字符。请参阅协议语法规则(第2.3.1节),了解服务器名称中可能使用和可能不使用的内容。

1.2 Clients
1.2 客户

For each client all servers MUST have the following information: a netwide unique identifier (whose format depends on the type of client) and the server which introduced the client.

对于每个客户端,所有服务器都必须具有以下信息:netwide唯一标识符(其格式取决于客户端类型)和引入客户端的服务器。

1.2.1 Users
1.2.1 使用者

Each user is distinguished from other users by a unique nickname having a maximum length of nine (9) characters. See the protocol grammar rules (section 2.3.1) for what may and may not be used in a nickname.

每个用户都有一个唯一的昵称,最大长度为九(9)个字符,与其他用户不同。请参阅协议语法规则(第2.3.1节),了解昵称中可能使用和可能不使用的内容。

While the maximum length is limited to nine characters, clients SHOULD accept longer strings as they may become used in future evolutions of the protocol.

虽然最大长度限制为9个字符,但客户端应接受更长的字符串,因为它们可能会在协议的未来演变中使用。

1.2.1.1 Operators
1.2.1.1 操作员

To allow a reasonable amount of order to be kept within the IRC network, a special class of users (operators) is allowed to perform general maintenance functions on the network. Although the powers granted to an operator can be considered as 'dangerous', they are nonetheless often necessary. Operators SHOULD be able to perform basic network tasks such as disconnecting and reconnecting servers as needed. In recognition of this need, the protocol discussed herein provides for operators only to be able to perform such functions. See sections 3.1.8 (SQUIT) and 3.4.7 (CONNECT).

为了在IRC网络内保持合理数量的订单,允许一类特殊的用户(运营商)在网络上执行一般维护功能。尽管授予经营者的权力可被视为“危险”,但它们通常是必要的。操作员应能够执行基本的网络任务,如根据需要断开和重新连接服务器。认识到这一需要,本文讨论的协议规定操作员只能执行此类功能。见第3.1.8节(斜管)和第3.4.7节(连接)。

A more controversial power of operators is the ability to remove a user from the connected network by 'force', i.e., operators are able to close the connection between any client and server. The justification for this is very delicate since its abuse is both destructive and annoying, and its benefits close to inexistent. For further details on this type of action, see section 3.7.1 (KILL).

运营商更具争议的能力是通过“强制”将用户从连接的网络中删除,即运营商能够关闭任何客户端和服务器之间的连接。这样做的理由非常微妙,因为它的滥用既具有破坏性又令人讨厌,而且其好处几乎不存在。有关此类行动的更多详细信息,请参见第3.7.1节(杀死)。

1.2.2 Services
1.2.2 服务

Each service is distinguished from other services by a service name composed of a nickname and a server name. As for users, the nickname has a maximum length of nine (9) characters. See the protocol grammar rules (section 2.3.1) for what may and may not be used in a nickname.

每个服务都有一个由昵称和服务器名组成的服务名来区别于其他服务。至于用户,昵称的最大长度为九(9)个字符。请参阅协议语法规则(第2.3.1节),了解昵称中可能使用和可能不使用的内容。

1.3 Channels
1.3 渠道

Channels names are strings (beginning with a '&', '#', '+' or '!' character) of length up to fifty (50) characters. Apart from the requirement that the first character is either '&', '#', '+' or '!', the only restriction on a channel name is that it SHALL NOT contain any spaces (' '), a control G (^G or ASCII 7), a comma (','). Space is used as parameter separator and command is used as a list item separator by the protocol). A colon (':') can also be used as a delimiter for the channel mask. Channel names are case insensitive.

频道名称是长度不超过五十(50)个字符的字符串(以'&'、'#'、'+'或'!'字符开头)。除了要求第一个字符是“&”、“#”、“+”或“!”之外,对通道名称的唯一限制是,它不应包含任何空格(“”)、控件G(^G或ASCII 7)、逗号(“,”)。空格用作参数分隔符,命令用作协议的列表项分隔符)。冒号(“:”)也可以用作通道掩码的分隔符。通道名称不区分大小写。

See the protocol grammar rules (section 2.3.1) for the exact syntax of a channel name.

有关通道名称的确切语法,请参阅协议语法规则(第2.3.1节)。

Each prefix characterizes a different channel type. The definition of the channel types is not relevant to the client-server protocol and thus it is beyond the scope of this document. More details can be found in "Internet Relay Chat: Channel Management" [IRC-CHAN].

每个前缀表示不同的通道类型。通道类型的定义与客户机-服务器协议无关,因此超出了本文档的范围。更多详细信息请参见“互联网中继聊天:频道管理”[IRC-CHAN]。

2. The IRC Client Specification
2. IRC客户端规范
2.1 Overview
2.1 概述

The protocol as described herein is for use only with client to server connections when the client registers as a user.

本文所述的协议仅用于当客户端注册为用户时的客户端到服务器连接。

2.2 Character codes
2.2 字符代码

No specific character set is specified. The protocol is based on a set of codes which are composed of eight (8) bits, making up an octet. Each message may be composed of any number of these octets; however, some octet values are used for control codes, which act as message delimiters.

没有指定特定的字符集。该协议基于一组由八(8)位组成的代码,组成一个八位字节。每条消息可以由任意数量的八位字节组成;但是,某些八位字节值用于控制代码,用作消息分隔符。

Regardless of being an 8-bit protocol, the delimiters and keywords are such that protocol is mostly usable from US-ASCII terminal and a telnet connection.

无论是8位协议,定界符和关键字都是这样的,即该协议主要可从US-ASCII终端和telnet连接使用。

Because of IRC's Scandinavian origin, the characters {}|^ are considered to be the lower case equivalents of the characters []\~, respectively. This is a critical issue when determining the equivalence of two nicknames or channel names.

由于IRC起源于斯堪的纳维亚,字符{}|^被认为分别是字符[]\~的小写等价物。在确定两个昵称或频道名称的等效性时,这是一个关键问题。

2.3 Messages
2.3 信息

Servers and clients send each other messages, which may or may not generate a reply. If the message contains a valid command, as described in later sections, the client should expect a reply as specified but it is not advised to wait forever for the reply; client to server and server to server communication is essentially asynchronous by nature.

服务器和客户端互相发送消息,这些消息可能会生成也可能不会生成回复。如果消息包含一个有效的命令,如后面章节所述,客户端应该期望收到指定的答复,但不建议永远等待答复;客户端到服务器和服务器到服务器的通信本质上是异步的。

Each IRC message may consist of up to three main parts: the prefix (OPTIONAL), the command, and the command parameters (maximum of fifteen (15)). The prefix, command, and all parameters are separated by one ASCII space character (0x20) each.

每个IRC消息最多可由三个主要部分组成:前缀(可选)、命令和命令参数(最多十五(15))。前缀、命令和所有参数分别由一个ASCII空格字符(0x20)分隔。

The presence of a prefix is indicated with a single leading ASCII colon character (':', 0x3b), which MUST be the first character of the message itself. There MUST be NO gap (whitespace) between the colon and the prefix. The prefix is used by servers to indicate the true origin of the message. If the prefix is missing from the message, it is assumed to have originated from the connection from which it was received from. Clients SHOULD NOT use a prefix when sending a message; if they use one, the only valid prefix is the registered nickname associated with the client.

前缀的存在由单个前导ASCII冒号字符(“:”,0x3b)表示,该字符必须是消息本身的第一个字符。冒号和前缀之间不能有空格。服务器使用前缀指示消息的真实来源。如果消息中缺少前缀,则假定该前缀来自接收该前缀的连接。客户端在发送消息时不应使用前缀;如果他们使用一个,唯一有效的前缀是与客户端关联的注册昵称。

The command MUST either be a valid IRC command or a three (3) digit number represented in ASCII text.

该命令必须是有效的IRC命令或以ASCII文本表示的三(3)位数字。

IRC messages are always lines of characters terminated with a CR-LF (Carriage Return - Line Feed) pair, and these messages SHALL NOT exceed 512 characters in length, counting all characters including the trailing CR-LF. Thus, there are 510 characters maximum allowed for the command and its parameters. There is no provision for continuation of message lines. See section 6 for more details about current implementations.

IRC消息始终是以CR-LF(回车换行)对终止的字符行,这些消息的长度不得超过512个字符,包括尾部CR-LF在内的所有字符。因此,该命令及其参数最多允许510个字符。没有关于延续电文线路的规定。有关当前实现的更多详细信息,请参见第6节。

2.3.1 Message format in Augmented BNF
2.3.1 增广BNF中的消息格式

The protocol messages must be extracted from the contiguous stream of octets. The current solution is to designate two characters, CR and LF, as message separators. Empty messages are silently ignored, which permits use of the sequence CR-LF between messages without extra problems.

协议消息必须从连续的八位字节流中提取。当前的解决方案是指定两个字符CR和LF作为消息分隔符。空消息被静默忽略,这允许在消息之间使用序列CR-LF,而不会产生额外的问题。

The extracted message is parsed into the components <prefix>, <command> and list of parameters (<params>).

提取的消息被解析为组件<prefix>、<command>和参数列表(<params>)。

The Augmented BNF representation for this is:

这方面的扩充BNF表示为:

    message    =  [ ":" prefix SPACE ] command [ params ] crlf
    prefix     =  servername / ( nickname [ [ "!" user ] "@" host ] )
    command    =  1*letter / 3digit
    params     =  *14( SPACE middle ) [ SPACE ":" trailing ]
               =/ 14( SPACE middle ) [ SPACE [ ":" ] trailing ]
        
    message    =  [ ":" prefix SPACE ] command [ params ] crlf
    prefix     =  servername / ( nickname [ [ "!" user ] "@" host ] )
    command    =  1*letter / 3digit
    params     =  *14( SPACE middle ) [ SPACE ":" trailing ]
               =/ 14( SPACE middle ) [ SPACE [ ":" ] trailing ]
        
    nospcrlfcl =  %x01-09 / %x0B-0C / %x0E-1F / %x21-39 / %x3B-FF
                    ; any octet except NUL, CR, LF, " " and ":"
    middle     =  nospcrlfcl *( ":" / nospcrlfcl )
    trailing   =  *( ":" / " " / nospcrlfcl )
        
    nospcrlfcl =  %x01-09 / %x0B-0C / %x0E-1F / %x21-39 / %x3B-FF
                    ; any octet except NUL, CR, LF, " " and ":"
    middle     =  nospcrlfcl *( ":" / nospcrlfcl )
    trailing   =  *( ":" / " " / nospcrlfcl )
        
    SPACE      =  %x20        ; space character
    crlf       =  %x0D %x0A   ; "carriage return" "linefeed"
        
    SPACE      =  %x20        ; space character
    crlf       =  %x0D %x0A   ; "carriage return" "linefeed"
        

NOTES: 1) After extracting the parameter list, all parameters are equal whether matched by <middle> or <trailing>. <trailing> is just a syntactic trick to allow SPACE within the parameter.

注:1)提取参数列表后,无论是通过<middle>还是<trailing>匹配,所有参数都是相等的<trailing>只是一种语法技巧,用于在参数中留出空间。

2) The NUL (%x00) character is not special in message framing, and basically could end up inside a parameter, but it would cause extra complexities in normal C string handling. Therefore, NUL is not allowed within messages.

2) NUL(%x00)字符在消息帧中并不特殊,基本上可以在参数中结束,但它会在正常的C字符串处理中造成额外的复杂性。因此,消息中不允许使用NUL。

Most protocol messages specify additional semantics and syntax for the extracted parameter strings dictated by their position in the list. For example, many server commands will assume that the first parameter after the command is the list of targets, which can be described with:

大多数协议消息为提取的参数字符串指定附加语义和语法,这些参数字符串由它们在列表中的位置决定。例如,许多服务器命令将假定该命令后的第一个参数是目标列表,可以用以下内容描述:

  target     =  nickname / server
  msgtarget  =  msgto *( "," msgto )
  msgto      =  channel / ( user [ "%" host ] "@" servername )
  msgto      =/ ( user "%" host ) / targetmask
  msgto      =/ nickname / ( nickname "!" user "@" host )
  channel    =  ( "#" / "+" / ( "!" channelid ) / "&" ) chanstring
                [ ":" chanstring ]
  servername =  hostname
  host       =  hostname / hostaddr
  hostname   =  shortname *( "." shortname )
  shortname  =  ( letter / digit ) *( letter / digit / "-" )
                *( letter / digit )
                  ; as specified in RFC 1123 [HNAME]
  hostaddr   =  ip4addr / ip6addr
  ip4addr    =  1*3digit "." 1*3digit "." 1*3digit "." 1*3digit
  ip6addr    =  1*hexdigit 7( ":" 1*hexdigit )
  ip6addr    =/ "0:0:0:0:0:" ( "0" / "FFFF" ) ":" ip4addr
  nickname   =  ( letter / special ) *8( letter / digit / special / "-" )
  targetmask =  ( "$" / "#" ) mask
                  ; see details on allowed masks in section 3.3.1
  chanstring =  %x01-07 / %x08-09 / %x0B-0C / %x0E-1F / %x21-2B
  chanstring =/ %x2D-39 / %x3B-FF
                  ; any octet except NUL, BELL, CR, LF, " ", "," and ":"
  channelid  = 5( %x41-5A / digit )   ; 5( A-Z / 0-9 )
        
  target     =  nickname / server
  msgtarget  =  msgto *( "," msgto )
  msgto      =  channel / ( user [ "%" host ] "@" servername )
  msgto      =/ ( user "%" host ) / targetmask
  msgto      =/ nickname / ( nickname "!" user "@" host )
  channel    =  ( "#" / "+" / ( "!" channelid ) / "&" ) chanstring
                [ ":" chanstring ]
  servername =  hostname
  host       =  hostname / hostaddr
  hostname   =  shortname *( "." shortname )
  shortname  =  ( letter / digit ) *( letter / digit / "-" )
                *( letter / digit )
                  ; as specified in RFC 1123 [HNAME]
  hostaddr   =  ip4addr / ip6addr
  ip4addr    =  1*3digit "." 1*3digit "." 1*3digit "." 1*3digit
  ip6addr    =  1*hexdigit 7( ":" 1*hexdigit )
  ip6addr    =/ "0:0:0:0:0:" ( "0" / "FFFF" ) ":" ip4addr
  nickname   =  ( letter / special ) *8( letter / digit / special / "-" )
  targetmask =  ( "$" / "#" ) mask
                  ; see details on allowed masks in section 3.3.1
  chanstring =  %x01-07 / %x08-09 / %x0B-0C / %x0E-1F / %x21-2B
  chanstring =/ %x2D-39 / %x3B-FF
                  ; any octet except NUL, BELL, CR, LF, " ", "," and ":"
  channelid  = 5( %x41-5A / digit )   ; 5( A-Z / 0-9 )
        

Other parameter syntaxes are:

其他参数语法包括:

  user       =  1*( %x01-09 / %x0B-0C / %x0E-1F / %x21-3F / %x41-FF )
                  ; any octet except NUL, CR, LF, " " and "@"
  key        =  1*23( %x01-05 / %x07-08 / %x0C / %x0E-1F / %x21-7F )
                  ; any 7-bit US_ASCII character,
                  ; except NUL, CR, LF, FF, h/v TABs, and " "
  letter     =  %x41-5A / %x61-7A       ; A-Z / a-z
  digit      =  %x30-39                 ; 0-9
  hexdigit   =  digit / "A" / "B" / "C" / "D" / "E" / "F"
  special    =  %x5B-60 / %x7B-7D
                   ; "[", "]", "\", "`", "_", "^", "{", "|", "}"
        
  user       =  1*( %x01-09 / %x0B-0C / %x0E-1F / %x21-3F / %x41-FF )
                  ; any octet except NUL, CR, LF, " " and "@"
  key        =  1*23( %x01-05 / %x07-08 / %x0C / %x0E-1F / %x21-7F )
                  ; any 7-bit US_ASCII character,
                  ; except NUL, CR, LF, FF, h/v TABs, and " "
  letter     =  %x41-5A / %x61-7A       ; A-Z / a-z
  digit      =  %x30-39                 ; 0-9
  hexdigit   =  digit / "A" / "B" / "C" / "D" / "E" / "F"
  special    =  %x5B-60 / %x7B-7D
                   ; "[", "]", "\", "`", "_", "^", "{", "|", "}"
        

NOTES: 1) The <hostaddr> syntax is given here for the sole purpose of indicating the format to follow for IP addresses. This reflects the fact that the only available implementations of this protocol uses TCP/IP as underlying network protocol but is not meant to prevent other protocols to be used.

注:1)此处给出的<hostaddr>语法仅用于指示IP地址所遵循的格式。这反映了这样一个事实,即该协议的唯一可用实现使用TCP/IP作为底层网络协议,但并不意味着阻止使用其他协议。

2) <hostname> has a maximum length of 63 characters. This is a limitation of the protocol as internet hostnames (in particular) can be longer. Such restriction is necessary because IRC messages are limited to 512 characters in length. Clients connecting from a host which name is longer than 63 characters are registered using the host (numeric) address instead of the host name.

2) <hostname>的最大长度为63个字符。这是协议的一个限制,因为internet主机名(特别是)可能更长。这种限制是必要的,因为IRC消息的长度限制为512个字符。从名称超过63个字符的主机连接的客户端将使用主机(数字)地址而不是主机名进行注册。

3) Some parameters used in the following sections of this documents are not defined here as there is nothing specific about them besides the name that is used for convenience. These parameters follow the general syntax defined for <params>.

3) 本文档以下部分中使用的一些参数在此未定义,因为除了为方便起见使用的名称外,这些参数没有任何特定的内容。这些参数遵循为<params>定义的常规语法。

2.4 Numeric replies
2.4 数字回复

Most of the messages sent to the server generate a reply of some sort. The most common reply is the numeric reply, used for both errors and normal replies. The numeric reply MUST be sent as one message consisting of the sender prefix, the three-digit numeric, and the target of the reply. A numeric reply is not allowed to originate from a client. In all other respects, a numeric reply is just like a normal message, except that the keyword is made up of 3 numeric digits rather than a string of letters. A list of different replies is supplied in section 5 (Replies).

发送到服务器的大多数消息都会生成某种回复。最常见的回复是数字回复,用于错误回复和正常回复。数字回复必须作为一条由发件人前缀、三位数字和回复目标组成的消息发送。不允许从客户端发起数字回复。在所有其他方面,数字回复与普通邮件一样,只是关键字由3个数字组成,而不是由一串字母组成。第5节(答复)提供了不同答复的清单。

2.5 Wildcard expressions
2.5 通配符表达式

When wildcards are allowed in a string, it is referred as a "mask".

当字符串中允许使用通配符时,它被称为“掩码”。

For string matching purposes, the protocol allows the use of two special characters: '?' (%x3F) to match one and only one character, and '*' (%x2A) to match any number of any characters. These two characters can be escaped using the character '\' (%x5C).

出于字符串匹配的目的,协议允许使用两个特殊字符:“?”(%x3F)匹配一个且仅匹配一个字符,“*”(%x2A)匹配任意数量的任何字符。这两个字符可以使用字符“\”(%x5C)进行转义。

The Augmented BNF syntax for this is:

这方面的扩充BNF语法是:

    mask       =  *( nowild / noesc wildone / noesc wildmany )
    wildone    =  %x3F
    wildmany   =  %x2A
    nowild     =  %x01-29 / %x2B-3E / %x40-FF
                    ; any octet except NUL, "*", "?"
    noesc      =  %x01-5B / %x5D-FF
                    ; any octet except NUL and "\"
    matchone   =  %x01-FF
                    ; matches wildone
    matchmany  =  *matchone
                    ; matches wildmany
        
    mask       =  *( nowild / noesc wildone / noesc wildmany )
    wildone    =  %x3F
    wildmany   =  %x2A
    nowild     =  %x01-29 / %x2B-3E / %x40-FF
                    ; any octet except NUL, "*", "?"
    noesc      =  %x01-5B / %x5D-FF
                    ; any octet except NUL and "\"
    matchone   =  %x01-FF
                    ; matches wildone
    matchmany  =  *matchone
                    ; matches wildmany
        

Examples:

示例:

a?c ; Matches any string of 3 characters in length starting with "a" and ending with "c"

a?c;匹配任何长度为3个字符的字符串,以“a”开头,以“c”结尾

a*c ; Matches any string of at least 2 characters in length starting with "a" and ending with "c"

a*c;匹配长度至少为2个字符(以“a”开头,以“c”结尾)的任何字符串

3. Message Details
3. 消息详细信息

On the following pages there are descriptions of each message recognized by the IRC server and client. All commands described in this section MUST be implemented by any server for this protocol.

在以下页面中,有IRC服务器和客户端识别的每条消息的描述。本节中描述的所有命令必须由该协议的任何服务器实现。

Where the reply ERR_NOSUCHSERVER is returned, it means that the target of the message could not be found. The server MUST NOT send any other replies after this error for that command.

如果返回reply ERR_NOSUCHSERVER,则表示无法找到消息的目标。该命令出现此错误后,服务器不得发送任何其他回复。

The server to which a client is connected is required to parse the complete message, and return any appropriate errors.

客户端连接到的服务器需要解析完整的消息,并返回任何适当的错误。

If multiple parameters is presented, then each MUST be checked for validity and appropriate responses MUST be sent back to the client. In the case of incorrect messages which use parameter lists with comma as an item separator, a reply MUST be sent for each item.

如果提供了多个参数,则必须检查每个参数的有效性,并且必须将适当的响应发送回客户端。如果不正确的消息使用带有逗号的参数列表作为项目分隔符,则必须为每个项目发送回复。

3.1 Connection Registration
3.1 连接注册

The commands described here are used to register a connection with an IRC server as a user as well as to correctly disconnect.

此处描述的命令用于以用户身份注册与IRC服务器的连接以及正确断开连接。

A "PASS" command is not required for a client connection to be registered, but it MUST precede the latter of the NICK/USER combination (for a user connection) or the SERVICE command (for a service connection). The RECOMMENDED order for a client to register is as follows:

注册客户机连接不需要“PASS”命令,但它必须位于NICK/USER组合(对于用户连接)或SERVICE命令(对于服务连接)之前。客户注册的建议顺序如下:

1. Pass message 2. Nick message 2. Service message 3. User message

1.传递信息2。尼克留言2。服务信息3。用户消息

Upon success, the client will receive an RPL_WELCOME (for users) or RPL_YOURESERVICE (for services) message indicating that the connection is now registered and known the to the entire IRC network. The reply message MUST contain the full client identifier upon which it was registered.

成功后,客户端将收到RPL_WELCOME(针对用户)或RPL_YourService(针对服务)消息,指示连接现在已注册并为整个IRC网络所知。回复消息必须包含在其上注册的完整客户端标识符。

3.1.1 Password message
3.1.1 密码信息
      Command: PASS
   Parameters: <password>
        
      Command: PASS
   Parameters: <password>
        

The PASS command is used to set a 'connection password'. The optional password can and MUST be set before any attempt to register the connection is made. Currently this requires that user send a PASS command before sending the NICK/USER combination.

PASS命令用于设置“连接密码”。在尝试注册连接之前,可以而且必须设置可选密码。目前,这要求用户在发送NICK/user组合之前发送PASS命令。

Numeric Replies:

数字回复:

ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED

ERR_needmore参数ERR_已注册

Example:

例子:

PASS secretpasswordhere

在这里传递秘密密码

3.1.2 Nick message
3.1.2 尼克消息
      Command: NICK
   Parameters: <nickname>
        
      Command: NICK
   Parameters: <nickname>
        

NICK command is used to give user a nickname or change the existing one.

NICK命令用于给用户一个昵称或更改现有的昵称。

Numeric Replies:

数字回复:

ERR_NONICKNAMEGIVEN ERR_ERRONEUSNICKNAME ERR_NICKNAMEINUSE ERR_NICKCOLLISION ERR_UNAVAILRESOURCE ERR_RESTRICTED

错误非ICKNAMEGIVE错误昵称错误昵称使用错误合并错误不可用资源错误受限

Examples:

示例:

NICK Wiz ; Introducing new nick "Wiz" if session is still unregistered, or user changing his nickname to "Wiz"

维克;如果会话仍然未注册,则引入新的nick“Wiz”,或者用户将其昵称更改为“Wiz”

:WiZ!jto@tolsun.oulu.fi NICK Kilroy ; Server telling that WiZ changed his nickname to Kilroy.

:哇!jto@tolsun.oulu.fi尼克·基尔罗伊;服务器告诉WiZ把他的绰号改成了Kilroy。

3.1.3 User message
3.1.3 用户消息
      Command: USER
   Parameters: <user> <mode> <unused> <realname>
        
      Command: USER
   Parameters: <user> <mode> <unused> <realname>
        

The USER command is used at the beginning of connection to specify the username, hostname and realname of a new user.

用户命令在连接开始时用于指定新用户的用户名、主机名和实名。

The <mode> parameter should be a numeric, and can be used to automatically set user modes when registering with the server. This parameter is a bitmask, with only 2 bits having any signification: if the bit 2 is set, the user mode 'w' will be set and if the bit 3 is set, the user mode 'i' will be set. (See Section 3.1.5 "User Modes").

<mode>参数应为数字,可用于在向服务器注册时自动设置用户模式。此参数是位掩码,只有2位具有任何意义:如果设置了位2,将设置用户模式“w”,如果设置了位3,将设置用户模式“i”。(见第3.1.5节“用户模式”)。

The <realname> may contain space characters.

<realname>可能包含空格字符。

Numeric Replies:

数字回复:

ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED

ERR_needmore参数ERR_已注册

Example:

例子:

USER guest 0 * :Ronnie Reagan ; User registering themselves with a username of "guest" and real name "Ronnie Reagan".

用户来宾0*:罗尼·里根;用户使用用户名“guest”和实名“Ronnie Reagan”注册自己。

USER guest 8 * :Ronnie Reagan ; User registering themselves with a username of "guest" and real name "Ronnie Reagan", and asking to be set invisible.

用户嘉宾8*:罗尼·里根;用户使用用户名“guest”和真名“Ronnie Reagan”注册自己,并要求设置为不可见。

3.1.4 Oper message
3.1.4 操作消息
      Command: OPER
   Parameters: <name> <password>
        
      Command: OPER
   Parameters: <name> <password>
        

A normal user uses the OPER command to obtain operator privileges. The combination of <name> and <password> are REQUIRED to gain Operator privileges. Upon success, the user will receive a MODE message (see section 3.1.5) indicating the new user modes.

普通用户使用OPER命令获得操作员权限。要获得操作员权限,需要结合使用<name>和<password>。成功后,用户将收到指示新用户模式的模式消息(见第3.1.5节)。

Numeric Replies:

数字回复:

ERR_NEEDMOREPARAMS RPL_YOUREOPER ERR_NOOPERHOST ERR_PASSWDMISMATCH

ERR_needmore参数RPL_您的用户ERR_nooper主机ERR_passwd不匹配

Example:

例子:

OPER foo bar ; Attempt to register as an operator using a username of "foo" and "bar" as the password.

操作富吧;尝试使用用户名“foo”和“bar”作为密码注册为操作员。

3.1.5 User mode message
3.1.5 用户模式消息
      Command: MODE
   Parameters: <nickname>
               *( ( "+" / "-" ) *( "i" / "w" / "o" / "O" / "r" ) )
        
      Command: MODE
   Parameters: <nickname>
               *( ( "+" / "-" ) *( "i" / "w" / "o" / "O" / "r" ) )
        

The user MODE's are typically changes which affect either how the client is seen by others or what 'extra' messages the client is sent.

用户模式的更改通常会影响其他人对客户端的看法或客户端发送的“额外”消息。

A user MODE command MUST only be accepted if both the sender of the message and the nickname given as a parameter are both the same. If no other parameter is given, then the server will return the current settings for the nick.

A user MODE command MUST only be accepted if both the sender of the message and the nickname given as a parameter are both the same. If no other parameter is given, then the server will return the current settings for the nick.translate error, please retry

The available modes are as follows:

可用的模式如下:

           a - user is flagged as away;
           i - marks a users as invisible;
           w - user receives wallops;
           r - restricted user connection;
           o - operator flag;
           O - local operator flag;
           s - marks a user for receipt of server notices.
        
           a - user is flagged as away;
           i - marks a users as invisible;
           w - user receives wallops;
           r - restricted user connection;
           o - operator flag;
           O - local operator flag;
           s - marks a user for receipt of server notices.
        

Additional modes may be available later on.

以后可能会提供其他模式。

The flag 'a' SHALL NOT be toggled by the user using the MODE command, instead use of the AWAY command is REQUIRED.

用户不得使用MODE命令切换标志“a”,而是需要使用AWE命令。

If a user attempts to make themselves an operator using the "+o" or "+O" flag, the attempt SHOULD be ignored as users could bypass the authentication mechanisms of the OPER command. There is no restriction, however, on anyone `deopping' themselves (using "-o" or "-O").

如果用户试图使用“+o”或“+o”标志使自己成为操作员,则应忽略该尝试,因为用户可以绕过OPER命令的身份验证机制。但是,对任何人自己“去映射”(使用“-o”或“-o”)没有任何限制。

On the other hand, if a user attempts to make themselves unrestricted using the "-r" flag, the attempt SHOULD be ignored. There is no restriction, however, on anyone `deopping' themselves (using "+r"). This flag is typically set by the server upon connection for administrative reasons. While the restrictions imposed are left up to the implementation, it is typical that a restricted user not be allowed to change nicknames, nor make use of the channel operator status on channels.

另一方面,如果用户试图使用“-r”标志使自己不受限制,则应忽略该尝试。但是,对任何“去映射”自己(使用“+r”)的人没有任何限制。由于管理原因,此标志通常由服务器在连接时设置。虽然施加的限制由实现决定,但通常不允许受限制的用户更改昵称,也不允许使用频道上的频道运营商状态。

The flag 's' is obsolete but MAY still be used.

标志“s”已过时,但仍可使用。

Numeric Replies:

数字回复:

ERR_NEEDMOREPARAMS ERR_USERSDONTMATCH ERR_UMODEUNKNOWNFLAG RPL_UMODEIS

ERR_needmore参数ERR_USERSDONTMATCH ERR_UMODEUNKNOWNFLAG RPL_UMODEIS

Examples:

示例:

MODE WiZ -w ; Command by WiZ to turn off reception of WALLOPS messages.

WiZ-w模式;WiZ发出的关闭沃洛普斯信息接收的命令。

MODE Angel +i ; Command from Angel to make herself invisible.

模式天使+i;天使命令她让自己隐形。

MODE WiZ -o ; WiZ 'deopping' (removing operator status).

WiZ-o模式;WiZ“deopping”(正在删除操作员状态)。

3.1.6 Service message
3.1.6 服务信息
      Command: SERVICE
   Parameters: <nickname> <reserved> <distribution> <type>
               <reserved> <info>
        
      Command: SERVICE
   Parameters: <nickname> <reserved> <distribution> <type>
               <reserved> <info>
        

The SERVICE command to register a new service. Command parameters specify the service nickname, distribution, type and info of a new service.

注册新服务的服务命令。命令参数指定新服务的服务昵称、分发、类型和信息。

The <distribution> parameter is used to specify the visibility of a service. The service may only be known to servers which have a name matching the distribution. For a matching server to have knowledge of the service, the network path between that server and the server on which the service is connected MUST be composed of servers which names all match the mask.

<distribution>参数用于指定服务的可见性。只有名称与分发版匹配的服务器才能知道该服务。要使匹配的服务器了解服务,该服务器与服务所连接的服务器之间的网络路径必须由名称均与掩码匹配的服务器组成。

The <type> parameter is currently reserved for future usage.

<type>参数当前保留供将来使用。

Numeric Replies:

数字回复:

ERR_ALREADYREGISTRED ERR_NEEDMOREPARAMS ERR_ERRONEUSNICKNAME RPL_YOURESERVICE RPL_YOURHOST RPL_MYINFO

ERR\u已注册ERR\u需要更多参数ERR\u erroroneusnickname RPL\u youre服务RPL\u主机RPL\u MYINFO

Example:

例子:

SERVICE dict * *.fr 0 0 :French Dictionary ; Service registering itself with a name of "dict". This service will only be available on servers which name matches "*.fr".

服务目录**.fr 0:法语词典;使用“dict”名称注册自身的服务。此服务仅在名称与“*.fr”匹配的服务器上可用。

3.1.7 Quit
3.1.7 退出
      Command: QUIT
   Parameters: [ <Quit Message> ]
        
      Command: QUIT
   Parameters: [ <Quit Message> ]
        

A client session is terminated with a quit message. The server acknowledges this by sending an ERROR message to the client.

客户端会话以退出消息终止。服务器通过向客户端发送错误消息来确认这一点。

Numeric Replies:

数字回复:

None.

没有一个

Example:

例子:

QUIT :Gone to have lunch ; Preferred message format.

戒烟:去吃午饭;首选消息格式。

:syrk!kalt@millennium.stealth.net QUIT :Gone to have lunch ; User syrk has quit IRC to have lunch.

:锡克!kalt@millennium.stealth.net戒烟:去吃午饭;用户syrk已退出IRC吃午饭。

3.1.8 Squit
3.1.8 斜视
      Command: SQUIT
   Parameters: <server> <comment>
        
      Command: SQUIT
   Parameters: <server> <comment>
        

The SQUIT command is available only to operators. It is used to disconnect server links. Also servers can generate SQUIT messages on error conditions. A SQUIT message may also target a remote server connection. In this case, the SQUIT message will simply be sent to the remote server without affecting the servers in between the operator and the remote server.

“斜管”命令仅对操作员可用。它用于断开服务器链接。此外,服务器还可以在错误情况下生成SQUIT消息。短消息也可能以远程服务器连接为目标。在这种情况下,SQUIT消息只会发送到远程服务器,而不会影响操作员和远程服务器之间的服务器。

The <comment> SHOULD be supplied by all operators who execute a SQUIT for a remote server. The server ordered to disconnect its peer generates a WALLOPS message with <comment> included, so that other users may be aware of the reason of this action.

<comment>应由为远程服务器执行喷射的所有操作员提供。被命令断开其对等服务器的连接的服务器会生成一条包含<comment>的WALLOPS消息,以便其他用户知道此操作的原因。

Numeric replies:

数字回复:

ERR_NOPRIVILEGES ERR_NOSUCHSERVER ERR_NEEDMOREPARAMS

ERR_NOPRIVILEGES ERR_nosuch服务器ERR_needmore参数

Examples:

示例:

SQUIT tolsun.oulu.fi :Bad Link ? ; Command to uplink of the server tolson.oulu.fi to terminate its connection with comment "Bad Link".

SQUIT tolsun.oulu.fi:链接错误;命令发送到服务器tolson.oulu.fi的上行链路,以使用注释“坏链接”终止其连接。

:Trillian SQUIT cm22.eng.umd.edu :Server out of control ; Command from Trillian from to disconnect "cm22.eng.umd.edu" from the net with comment "Server out of control".

:Trillian SQUIT cm22.eng.umd.edu:服务器失控;Trillian from发出的命令,用于断开“cm22.eng.umd.edu”与网络的连接,注释为“服务器失控”。

3.2 Channel operations
3.2 渠道运作

This group of messages is concerned with manipulating channels, their properties (channel modes), and their contents (typically users). For this reason, these messages SHALL NOT be made available to services.

这组消息与操纵频道、频道属性(频道模式)及其内容(通常是用户)有关。因此,不得向服务提供这些信息。

All of these messages are requests which will or will not be granted by the server. The server MUST send a reply informing the user whether the request was granted, denied or generated an error. When the server grants the request, the message is typically sent back (eventually reformatted) to the user with the prefix set to the user itself.

所有这些消息都是服务器将授予或不授予的请求。服务器必须发送回复,通知用户请求是否被批准、拒绝或生成错误。当服务器授予请求时,消息通常会返回(最终重新格式化)给用户,前缀设置为用户本身。

The rules governing how channels are managed are enforced by the servers. These rules are beyond the scope of this document. More details are found in "Internet Relay Chat: Channel Management" [IRC-CHAN].

管理通道管理方式的规则由服务器强制执行。这些规则超出了本文件的范围。更多详细信息请参见“互联网中继聊天:频道管理”[IRC-CHAN]。

3.2.1 Join message
3.2.1 加入消息
      Command: JOIN
   Parameters: ( <channel> *( "," <channel> ) [ <key> *( "," <key> ) ] )
               / "0"
        
      Command: JOIN
   Parameters: ( <channel> *( "," <channel> ) [ <key> *( "," <key> ) ] )
               / "0"
        

The JOIN command is used by a user to request to start listening to the specific channel. Servers MUST be able to parse arguments in the form of a list of target, but SHOULD NOT use lists when sending JOIN messages to clients.

用户使用JOIN命令请求开始收听特定频道。服务器必须能够以目标列表的形式解析参数,但在向客户端发送连接消息时不应使用列表。

Once a user has joined a channel, he receives information about all commands his server receives affecting the channel. This includes JOIN, MODE, KICK, PART, QUIT and of course PRIVMSG/NOTICE. This allows channel members to keep track of the other channel members, as well as channel modes.

一旦用户加入频道,他将收到有关其服务器收到的影响频道的所有命令的信息。这包括加入、模式、踢、部分、退出,当然还有PRIVMSG/NOTICE。这允许通道成员跟踪其他通道成员以及通道模式。

If a JOIN is successful, the user receives a JOIN message as confirmation and is then sent the channel's topic (using RPL_TOPIC) and the list of users who are on the channel (using RPL_NAMREPLY), which MUST include the user joining.

如果加入成功,用户将收到一条加入消息作为确认,然后发送频道的主题(使用RPL_主题)和频道上的用户列表(使用RPL_NAMREPLY),其中必须包括用户加入。

Note that this message accepts a special argument ("0"), which is a special request to leave all channels the user is currently a member of. The server will process this message as if the user had sent a PART command (See Section 3.2.2) for each channel he is a member of.

请注意,此消息接受一个特殊参数(“0”),这是一个特殊请求,用于离开用户当前所属的所有频道。服务器将处理此消息,就像用户为其所属的每个频道发送了PART命令一样(参见第3.2.2节)。

Numeric Replies:

数字回复:

ERR_NEEDMOREPARAMS ERR_BANNEDFROMCHAN ERR_INVITEONLYCHAN ERR_BADCHANNELKEY ERR_CHANNELISFULL ERR_BADCHANMASK ERR_NOSUCHCHANNEL ERR_TOOMANYCHANNELS ERR_TOOMANYTARGETS ERR_UNAVAILRESOURCE RPL_TOPIC

ERR\u需要更多参数ERR\u来自Chan ERR\u Investended Only Chan ERR\u Bad Channel Key ERR\u Channel Is Full ERR\u Bad Chan Mask ERR\u Nos此类通道错误\u Tooman通道错误\u Tooman目标错误\u Unavail Resource RPL\u主题

Examples:

示例:

JOIN #foobar ; Command to join channel #foobar.

加入#foobar;加入频道#foobar的命令。

JOIN &foo fubar ; Command to join channel &foo using key "fubar".

加入富富吧;使用键“fubar”加入频道和foo的命令。

JOIN #foo,&bar fubar ; Command to join channel #foo using key "fubar" and &bar using no key.

加入#foo和bar fubar;命令使用键“fubar”连接通道#foo,不使用键连接&bar。

JOIN #foo,#bar fubar,foobar ; Command to join channel #foo using key "fubar", and channel #bar using key "foobar".

加入#foo,#bar fubar,foobar;命令使用键“fubar”连接通道#foo,使用键“foobar”连接通道#bar。

JOIN #foo,#bar ; Command to join channels #foo and #bar.

加入富吧;命令加入频道#foo和#bar。

JOIN 0 ; Leave all currently joined channels.

加入0;保留所有当前加入的频道。

   :WiZ!jto@tolsun.oulu.fi JOIN #Twilight_zone ; JOIN message from WiZ
                                   on channel #Twilight_zone
        
   :WiZ!jto@tolsun.oulu.fi JOIN #Twilight_zone ; JOIN message from WiZ
                                   on channel #Twilight_zone
        
3.2.2 Part message
3.2.2 部分消息
      Command: PART
   Parameters: <channel> *( "," <channel> ) [ <Part Message> ]
        
      Command: PART
   Parameters: <channel> *( "," <channel> ) [ <Part Message> ]
        

The PART command causes the user sending the message to be removed from the list of active members for all given channels listed in the parameter string. If a "Part Message" is given, this will be sent instead of the default message, the nickname. This request is always granted by the server.

PART命令使发送消息的用户从参数字符串中列出的所有给定通道的活动成员列表中删除。如果给出了“部分消息”,则将发送该消息,而不是默认消息,即昵称。此请求始终由服务器授予。

Servers MUST be able to parse arguments in the form of a list of target, but SHOULD NOT use lists when sending PART messages to clients.

服务器必须能够以目标列表的形式解析参数,但在向客户端发送部分消息时不应使用列表。

Numeric Replies:

数字回复:

ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL ERR_NOTONCHANNEL

ERR_needmore参数ERR_nosuch通道ERR_notnchannel

Examples:

示例:

PART #twilight_zone ; Command to leave channel "#twilight_zone"

部分#黄昏地带;;命令离开频道“#黄昏区”

PART #oz-ops,&group5 ; Command to leave both channels "&group5" and "#oz-ops".

第#部分oz ops和第5组;命令离开两个通道“&group5”和“#oz ops”。

:WiZ!jto@tolsun.oulu.fi PART #playzone :I lost ; User WiZ leaving channel "#playzone" with the message "I lost".

:哇!jto@tolsun.oulu.fi游戏区:我输了;用户WiZ离开频道“#playzone”,并显示消息“我迷路了”。

3.2.3 Channel mode message
3.2.3 信道模式消息
      Command: MODE
   Parameters: <channel> *( ( "-" / "+" ) *<modes> *<modeparams> )
        
      Command: MODE
   Parameters: <channel> *( ( "-" / "+" ) *<modes> *<modeparams> )
        

The MODE command is provided so that users may query and change the characteristics of a channel. For more details on available modes and their uses, see "Internet Relay Chat: Channel Management" [IRC-CHAN]. Note that there is a maximum limit of three (3) changes per command for modes that take a parameter.

提供MODE命令,以便用户可以查询和更改频道的特性。有关可用模式及其使用的更多详细信息,请参阅“Internet中继聊天:频道管理”[IRC-CHAN]。请注意,对于采用参数的模式,每个命令的最大更改限制为三(3)次。

Numeric Replies:

数字回复:

ERR_NEEDMOREPARAMS ERR_KEYSET ERR_NOCHANMODES ERR_CHANOPRIVSNEEDED ERR_USERNOTINCHANNEL ERR_UNKNOWNMODE RPL_CHANNELMODEIS RPL_BANLIST RPL_ENDOFBANLIST RPL_EXCEPTLIST RPL_ENDOFEXCEPTLIST RPL_INVITELIST RPL_ENDOFINVITELIST RPL_UNIQOPIS

ERR\u needmore参数ERR\u key set ERR\u NOCHANMODES ERR\u chanoprivsneed ERR\u usernotin channel ERR\u unknown模式RPL\u channelmode为RPL\u BANLIST RPL\u endobbanlist RPL\u endobbanlist RPL\u endobbanlist RPL\u EXCEPTLIST RPL\u INVITELIST RPL\u endobfinitelist RPL\u UNIQOPIS

The following examples are given to help understanding the syntax of the MODE command, but refer to modes defined in "Internet Relay Chat: Channel Management" [IRC-CHAN].

以下示例有助于理解MODE命令的语法,但参考“Internet中继聊天:频道管理”[IRC-CHAN]中定义的模式。

Examples:

示例:

MODE #Finnish +imI *!*@*.fi ; Command to make #Finnish channel moderated and 'invite-only' with user with a hostname matching *.fi automatically invited.

模式#芬兰语+imI*!*@*。fi;命令使#Finnish频道处于主持状态,并“仅邀请”主机名与*.fi匹配的用户自动邀请。

MODE #Finnish +o Kilroy ; Command to give 'chanop' privileges to Kilroy on channel #Finnish.

模式#芬兰语+基尔罗伊语;命令将“chanop”特权授予芬兰频道上的Kilroy。

MODE #Finnish +v Wiz ; Command to allow WiZ to speak on #Finnish.

模式#芬兰语+维兹语;允许WiZ用芬兰语发言的命令。

MODE #Fins -s ; Command to remove 'secret' flag from channel #Fins.

模式#Fins-s;从通道散热片上移除“机密”标志的命令。

MODE #42 +k oulu ; Command to set the channel key to "oulu".

模式#42+k oulu;将通道键设置为“oulu”的命令。

MODE #42 -k oulu ; Command to remove the "oulu" channel key on channel "#42".

模式#42-k oulu;删除通道“#42”上的“oulu”通道键的命令。

MODE #eu-opers +l 10 ; Command to set the limit for the number of users on channel "#eu-opers" to 10.

模式#eu opers+l 10;命令将频道“#eu opers”上的用户数限制设置为10。

:WiZ!jto@tolsun.oulu.fi MODE #eu-opers -l ; User "WiZ" removing the limit for the number of users on channel "#eu-opers".

:哇!jto@tolsun.oulu.fi模式#欧盟运营商-l;用户“WiZ”取消了“eu opers”频道的用户数量限制。

MODE &oulu +b ; Command to list ban masks set for the channel "&oulu".

模式&oulu+b;用于列出为通道“&oulu”设置的禁止掩码的命令。

MODE &oulu +b *!*@* ; Command to prevent all users from joining.

模式&oulu+b*!*@*;命令以防止所有用户加入。

   MODE &oulu +b *!*@*.edu +e *!*@*.bu.edu
                                   ; Command to prevent any user from a
                                   hostname matching *.edu from joining,
                                   except if matching *.bu.edu
        
   MODE &oulu +b *!*@*.edu +e *!*@*.bu.edu
                                   ; Command to prevent any user from a
                                   hostname matching *.edu from joining,
                                   except if matching *.bu.edu
        
   MODE #bu +be *!*@*.edu *!*@*.bu.edu
                                   ; Comment to prevent any user from a
                                   hostname matching *.edu from joining,
                                   except if matching *.bu.edu
        
   MODE #bu +be *!*@*.edu *!*@*.bu.edu
                                   ; Comment to prevent any user from a
                                   hostname matching *.edu from joining,
                                   except if matching *.bu.edu
        

MODE #meditation e ; Command to list exception masks set for the channel "#meditation".

模式#冥想e;命令列出为通道“#冥想”设置的异常掩码。

MODE #meditation I ; Command to list invitations masks set for the channel "#meditation".

模式#冥想I;命令列出为频道“#冥想”设置的邀请掩码。

MODE !12345ircd O ; Command to ask who the channel creator for "!12345ircd" is

模式12345ircd O;用于询问“!12345ircd”的频道创建者的命令

3.2.4 Topic message
3.2.4 主题消息
      Command: TOPIC
   Parameters: <channel> [ <topic> ]
        
      Command: TOPIC
   Parameters: <channel> [ <topic> ]
        

The TOPIC command is used to change or view the topic of a channel. The topic for channel <channel> is returned if there is no <topic> given. If the <topic> parameter is present, the topic for that channel will be changed, if this action is allowed for the user requesting it. If the <topic> parameter is an empty string, the topic for that channel will be removed.

TOPIC命令用于更改或查看频道的主题。如果没有给出<topic>,则返回频道<channel>的主题。如果<topic>参数存在,则如果请求该频道的用户允许此操作,则该频道的主题将被更改。如果<topic>参数为空字符串,则该频道的主题将被删除。

Numeric Replies:

数字回复:

ERR_NEEDMOREPARAMS ERR_NOTONCHANNEL RPL_NOTOPIC RPL_TOPIC ERR_CHANOPRIVSNEEDED ERR_NOCHANMODES

ERR\u needmore参数ERR\u notnchannel RPL\u notpic RPL\u主题ERR\u chanoprivsneed ERR\u NOCHANMODES

Examples:

示例:

:WiZ!jto@tolsun.oulu.fi TOPIC #test :New topic ; User Wiz setting the topic.

:哇!jto@tolsun.oulu.fi题目#测试:新题目;用户Wiz设置主题。

TOPIC #test :another topic ; Command to set the topic on #test to "another topic".

题目#测试:另一个题目;命令将#test上的主题设置为“另一个主题”。

TOPIC #test : ; Command to clear the topic on #test.

题目#测试:;命令以清除#test上的主题。

TOPIC #test ; Command to check the topic for #test.

主题#测试;命令检查#测试的主题。

3.2.5 Names message
3.2.5 姓名信息
      Command: NAMES
   Parameters: [ <channel> *( "," <channel> ) [ <target> ] ]
        
      Command: NAMES
   Parameters: [ <channel> *( "," <channel> ) [ <target> ] ]
        

By using the NAMES command, a user can list all nicknames that are visible to him. For more details on what is visible and what is not, see "Internet Relay Chat: Channel Management" [IRC-CHAN]. The <channel> parameter specifies which channel(s) to return information about. There is no error reply for bad channel names.

通过使用NAMES命令,用户可以列出他可以看到的所有昵称。有关哪些内容可见,哪些内容不可见的更多详细信息,请参阅“Internet中继聊天:频道管理”[IRC-CHAN]。<channel>参数指定要返回信息的通道。没有错误通道名称的错误回复。

If no <channel> parameter is given, a list of all channels and their occupants is returned. At the end of this list, a list of users who are visible but either not on any channel or not on a visible channel are listed as being on `channel' "*".

如果未给出<channel>参数,则返回所有通道及其占用者的列表。在此列表的末尾,可见但不在任何频道或不在可见频道上的用户列表被列为“频道”*”。

If the <target> parameter is specified, the request is forwarded to that server which will generate the reply.

如果指定了<target>参数,则请求将转发到将生成应答的服务器。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Numerics:

数字:

ERR_TOOMANYMATCHES ERR_NOSUCHSERVER RPL_NAMREPLY RPL_ENDOFNAMES

错误为TOOMANYMATCHES错误为Nosuch服务器RPL而不是Reply RPL

Examples:

示例:

   NAMES #twilight_zone,#42        ; Command to list visible users on
                                   #twilight_zone and #42
        
   NAMES #twilight_zone,#42        ; Command to list visible users on
                                   #twilight_zone and #42
        

NAMES ; Command to list all visible channels and users

姓名;命令列出所有可见频道和用户

3.2.6 List message
3.2.6 列表消息
      Command: LIST
   Parameters: [ <channel> *( "," <channel> ) [ <target> ] ]
        
      Command: LIST
   Parameters: [ <channel> *( "," <channel> ) [ <target> ] ]
        

The list command is used to list channels and their topics. If the <channel> parameter is used, only the status of that channel is displayed.

list命令用于列出频道及其主题。如果使用<channel>参数,则仅显示该通道的状态。

If the <target> parameter is specified, the request is forwarded to that server which will generate the reply.

如果指定了<target>参数,则请求将转发到将生成应答的服务器。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Numeric Replies:

数字回复:

ERR_TOOMANYMATCHES ERR_NOSUCHSERVER RPL_LIST RPL_LISTEND

ERR\u TOOMANYMATCHES ERR\u NOSUCH服务器RPL\u列表RPL\u LISTEND

Examples:

示例:

LIST ; Command to list all channels.

列表命令列出所有通道。

   LIST #twilight_zone,#42         ; Command to list channels
                                   #twilight_zone and #42
        
   LIST #twilight_zone,#42         ; Command to list channels
                                   #twilight_zone and #42
        
3.2.7 Invite message
3.2.7 邀请消息
      Command: INVITE
   Parameters: <nickname> <channel>
        
      Command: INVITE
   Parameters: <nickname> <channel>
        

The INVITE command is used to invite a user to a channel. The parameter <nickname> is the nickname of the person to be invited to the target channel <channel>. There is no requirement that the channel the target user is being invited to must exist or be a valid channel. However, if the channel exists, only members of the channel are allowed to invite other users. When the channel has invite-only flag set, only channel operators may issue INVITE command.

INVITE命令用于邀请用户访问频道。参数<nickname>是被邀请到目标频道<channel>的人的昵称。不要求邀请目标用户访问的频道必须存在或是有效频道。但是,如果频道存在,则仅允许频道成员邀请其他用户。当频道设置了invite only标志时,只有频道操作员才能发出invite命令。

Only the user inviting and the user being invited will receive notification of the invitation. Other channel members are not notified. (This is unlike the MODE changes, and is occasionally the source of trouble for users.)

只有邀请用户和被邀请用户才会收到邀请通知。未通知其他频道成员。(这与模式更改不同,有时会给用户带来麻烦。)

Numeric Replies:

数字回复:

ERR_NEEDMOREPARAMS ERR_NOSUCHNICK ERR_NOTONCHANNEL ERR_USERONCHANNEL ERR_CHANOPRIVSNEEDED RPL_INVITING RPL_AWAY

ERR\u needmore参数ERR\u NOSUCHNICK ERR\u notnchannel ERR\u用户onchannel ERR\u chanopriv需要RPL\u邀请RPL\u离开

Examples:

示例:

   :Angel!wings@irc.org INVITE Wiz #Dust
        
   :Angel!wings@irc.org INVITE Wiz #Dust
        

; Message to WiZ when he has been invited by user Angel to channel #Dust

; 当WiZ被用户Angel邀请进入“灰尘”频道时,向他发送消息

INVITE Wiz #Twilight_Zone ; Command to invite WiZ to #Twilight_zone

邀请Wiz#暮光之城#;命令邀请WiZ进入#暮光之城#

3.2.8 Kick command
3.2.8 踢指令
      Command: KICK
   Parameters: <channel> *( "," <channel> ) <user> *( "," <user> )
               [<comment>]
        
      Command: KICK
   Parameters: <channel> *( "," <channel> ) <user> *( "," <user> )
               [<comment>]
        

The KICK command can be used to request the forced removal of a user from a channel. It causes the <user> to PART from the <channel> by force. For the message to be syntactically correct, there MUST be either one channel parameter and multiple user parameter, or as many channel parameters as there are user parameters. If a "comment" is given, this will be sent instead of the default message, the nickname of the user issuing the KICK.

KICK命令可用于请求强制从通道中删除用户。它使<user>通过强制方式从<channel>分离。要使消息在语法上正确,必须有一个通道参数和多个用户参数,或者有多个用户参数就有多个通道参数。如果给出“注释”,则将发送该注释,而不是发送默认消息,即发出踢击的用户的昵称。

The server MUST NOT send KICK messages with multiple channels or users to clients. This is necessarily to maintain backward compatibility with old client software.

服务器不得使用多个通道或用户向客户端发送KICK消息。这是为了保持与旧客户端软件的向后兼容性。

Numeric Replies:

数字回复:

ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL ERR_BADCHANMASK ERR_CHANOPRIVSNEEDED ERR_USERNOTINCHANNEL ERR_NOTONCHANNEL

ERR\u needmore参数ERR\u nosuch channel ERR\u BADCHANMASK ERR\u chanoprivsneed ERR\u usernotin channel ERR\u notnchchannel

Examples:

示例:

KICK &Melbourne Matthew ; Command to kick Matthew from &Melbourne

基克&墨尔本马修;从墨尔本踢马修的命令

KICK #Finnish John :Speaking English ; Command to kick John from #Finnish using "Speaking English" as the reason (comment).

芬兰籍约翰:说英语;命令以“说英语”为理由将约翰从芬兰语踢出(评论)。

   :WiZ!jto@tolsun.oulu.fi KICK #Finnish John
                                   ; KICK message on channel #Finnish
                                   from WiZ to remove John from channel
        
   :WiZ!jto@tolsun.oulu.fi KICK #Finnish John
                                   ; KICK message on channel #Finnish
                                   from WiZ to remove John from channel
        
3.3 Sending messages
3.3 发送消息

The main purpose of the IRC protocol is to provide a base for clients to communicate with each other. PRIVMSG, NOTICE and SQUERY (described in Section 3.5 on Service Query and Commands) are the only messages available which actually perform delivery of a text message from one client to another - the rest just make it possible and try to ensure it happens in a reliable and structured manner.

IRC协议的主要目的是为客户端之间的通信提供基础。PRIVMSG、NOTICE和SQUERY(在关于服务查询和命令的第3.5节中描述)是唯一可以实际执行从一个客户机到另一个客户机的文本消息传递的消息-其余的只是使其成为可能,并尝试确保以可靠和结构化的方式进行。

3.3.1 Private messages
3.3.1 私人信息
      Command: PRIVMSG
   Parameters: <msgtarget> <text to be sent>
        
      Command: PRIVMSG
   Parameters: <msgtarget> <text to be sent>
        

PRIVMSG is used to send private messages between users, as well as to send messages to channels. <msgtarget> is usually the nickname of the recipient of the message, or a channel name.

PRIVMSG用于在用户之间发送私人消息,以及向频道发送消息<msgtarget>通常是邮件收件人的昵称或频道名称。

The <msgtarget> parameter may also be a host mask (#<mask>) or server mask ($<mask>). In both cases the server will only send the PRIVMSG to those who have a server or host matching the mask. The mask MUST have at least 1 (one) "." in it and no wildcards following the last ".". This requirement exists to prevent people sending messages to "#*" or "$*", which would broadcast to all users. Wildcards are the '*' and '?' characters. This extension to the PRIVMSG command is only available to operators.

<msgtarget>参数也可以是主机掩码(#<mask>)或服务器掩码($<mask>)。在这两种情况下,服务器将只向具有与掩码匹配的服务器或主机的用户发送PRIVMSG。掩码中必须至少有1(一)个“.”,并且最后一个“.”后面不能有通配符。此要求的存在是为了防止人们向“#*”或“$*”发送消息,这些消息将广播给所有用户。通配符是“*”和“?”字符。PRIVMSG命令的此扩展仅对操作员可用。

Numeric Replies:

数字回复:

ERR_NORECIPIENT ERR_NOTEXTTOSEND ERR_CANNOTSENDTOCHAN ERR_NOTOPLEVEL ERR_WILDTOPLEVEL ERR_TOOMANYTARGETS ERR_NOSUCHNICK RPL_AWAY

错误-无特定错误-无法发送到错误-无法发送到级别错误-无法发送到多个目标错误

Examples:

示例:

:Angel!wings@irc.org PRIVMSG Wiz :Are you receiving this message ? ; Message from Angel to Wiz.

:天使!wings@irc.org你收到这个消息了吗;天使给魔术师的信息。

PRIVMSG Angel :yes I'm receiving it ! ; Command to send a message to Angel.

是的,我收到了;命令发送消息给天使。

PRIVMSG jto@tolsun.oulu.fi :Hello ! ; Command to send a message to a user on server tolsun.oulu.fi with username of "jto".

PRIVMSGjto@tolsun.oulu.fi:你好;用于向服务器tolsun.oulu.fi上的用户发送用户名为“jto”的消息的命令。

PRIVMSG kalt%millennium.stealth.net@irc.stealth.net :Are you a frog? ; Message to a user on server irc.stealth.net with username of "kalt", and connected from the host millennium.stealth.net.

PRIVMSG kalt%millennium.隐身。net@irc.stealth.net你是一只青蛙吗;发送给服务器irc.steave.net上的用户的消息,用户名为“kalt”,并从主机millennium.steave.net连接。

PRIVMSG kalt%millennium.stealth.net :Do you like cheese? ; Message to a user on the local server with username of "kalt", and connected from the host millennium.stealth.net.

PRIVMSG kalt%millennium.steave.net:你喜欢奶酪吗;发送给本地服务器上用户名为“kalt”并从主机millennium.steave.net连接的用户的消息。

PRIVMSG Wiz!jto@tolsun.oulu.fi :Hello ! ; Message to the user with nickname Wiz who is connected from the host tolsun.oulu.fi and has the username "jto".

女巫!jto@tolsun.oulu.fi:你好;发送给昵称为Wiz的用户的消息,该用户从主机tolsun.oulu.fi连接,用户名为“jto”。

PRIVMSG $*.fi :Server tolsun.oulu.fi rebooting. ; Message to everyone on a server which has a name matching *.fi.

PRIVMSG$*.fi:服务器tolsun.oulu.fi正在重新启动;发送给服务器上名称与*.fi匹配的所有人的消息。

PRIVMSG #*.edu :NSFNet is undergoing work, expect interruptions ; Message to all users who come from a host which has a name matching *.edu.

PRIVMSG#*.edu:NSFNet正在工作,预计会中断;发送给来自名称与*.edu匹配的主机的所有用户的消息。

3.3.2 Notice
3.3.2 注意
      Command: NOTICE
   Parameters: <msgtarget> <text>
        
      Command: NOTICE
   Parameters: <msgtarget> <text>
        

The NOTICE command is used similarly to PRIVMSG. The difference between NOTICE and PRIVMSG is that automatic replies MUST NEVER be sent in response to a NOTICE message. This rule applies to servers

NOTICE命令的用法与PRIVMSG类似。NOTICE和PRIVMSG之间的区别在于,决不能发送自动回复来响应通知消息。此规则适用于服务器

too - they MUST NOT send any error reply back to the client on receipt of a notice. The object of this rule is to avoid loops between clients automatically sending something in response to something it received.

同样-他们不得在收到通知后向客户发送任何错误回复。此规则的目的是避免客户端之间的循环自动发送某个内容以响应接收到的内容。

This command is available to services as well as users.

此命令可用于服务和用户。

This is typically used by services, and automatons (clients with either an AI or other interactive program controlling their actions).

这通常由服务和自动机(具有AI或其他交互程序控制其操作的客户端)使用。

See PRIVMSG for more details on replies and examples.

有关回复和示例的更多详细信息,请参见PRIVMSG。

3.4 Server queries and commands
3.4 服务器查询和命令

The server query group of commands has been designed to return information about any server which is connected to the network.

服务器查询命令组被设计为返回有关连接到网络的任何服务器的信息。

In these queries, where a parameter appears as <target>, wildcard masks are usually valid. For each parameter, however, only one query and set of replies is to be generated. In most cases, if a nickname is given, it will mean the server to which the user is connected.

在这些查询中,当参数显示为<target>时,通配符掩码通常有效。但是,对于每个参数,只生成一个查询和一组回复。在大多数情况下,如果给出了昵称,则表示用户所连接的服务器。

These messages typically have little value for services, it is therefore RECOMMENDED to forbid services from using them.

这些消息通常对服务没有什么价值,因此建议禁止服务使用它们。

3.4.1 Motd message
3.4.1 Motd报文
      Command: MOTD
   Parameters: [ <target> ]
        
      Command: MOTD
   Parameters: [ <target> ]
        

The MOTD command is used to get the "Message Of The Day" of the given server, or current server if <target> is omitted.

MOTD命令用于获取给定服务器或当前服务器(如果省略<target>)的“当日消息”。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Numeric Replies: RPL_MOTDSTART RPL_MOTD RPL_ENDOFMOTD ERR_NOMOTD

数字回复:RPL_MOTDSTART RPL_MOTD RPL_ENDOFMOTD ERR_NOMOTD

3.4.2 Lusers message
3.4.2 卢瑟斯消息
      Command: LUSERS
   Parameters: [ <mask> [ <target> ] ]
        
      Command: LUSERS
   Parameters: [ <mask> [ <target> ] ]
        

The LUSERS command is used to get statistics about the size of the IRC network. If no parameter is given, the reply will be about the whole net. If a <mask> is specified, then the reply will only

LUSERS命令用于获取有关IRC网络大小的统计信息。如果没有给出任何参数,则答复将是关于整个网络的。如果指定了一个<mask>,则只会返回应答

concern the part of the network formed by the servers matching the mask. Finally, if the <target> parameter is specified, the request is forwarded to that server which will generate the reply.

关注由与掩码匹配的服务器组成的网络部分。最后,如果指定了<target>参数,则请求将转发到将生成应答的服务器。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Numeric Replies:

数字回复:

RPL_LUSERCLIENT RPL_LUSEROP RPL_LUSERUNKOWN RPL_LUSERCHANNELS RPL_LUSERME ERR_NOSUCHSERVER

RPL_LUSERCLIENT RPL_LUSEROP RPL_LUSERUNKOWN RPL_LUSERCHANNELS RPL_LUSERME ERR_nosuch服务器

3.4.3 Version message
3.4.3 版本消息
      Command: VERSION
   Parameters: [ <target> ]
        
      Command: VERSION
   Parameters: [ <target> ]
        

The VERSION command is used to query the version of the server program. An optional parameter <target> is used to query the version of the server program which a client is not directly connected to.

VERSION命令用于查询服务器程序的版本。可选参数<target>用于查询客户端未直接连接的服务器程序版本。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Numeric Replies:

数字回复:

ERR_NOSUCHSERVER RPL_VERSION

错误\u nosuch服务器RPL\u版本

Examples:

示例:

VERSION tolsun.oulu.fi ; Command to check the version of server "tolsun.oulu.fi".

版本tolsun.oulu.fi;用于检查服务器“tolsun.oulu.fi”版本的命令。

3.4.4 Stats message
3.4.4 统计信息
      Command: STATS
   Parameters: [ <query> [ <target> ] ]
        
      Command: STATS
   Parameters: [ <query> [ <target> ] ]
        

The stats command is used to query statistics of certain server. If <query> parameter is omitted, only the end of stats reply is sent back.

stats命令用于查询特定服务器的统计信息。如果省略<query>参数,则只返回stats结束回复。

A query may be given for any single letter which is only checked by the destination server and is otherwise passed on by intermediate servers, ignored and unaltered.

可以对任何单个信件进行查询,该信件仅由目标服务器检查,并由中间服务器传递,被忽略且未更改。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Except for the ones below, the list of valid queries is implementation dependent. The standard queries below SHOULD be supported by the server:

除以下各项外,有效查询的列表取决于实现。服务器应支持以下标准查询:

            l - returns a list of the server's connections, showing how
                long each connection has been established and the
                traffic over that connection in Kbytes and messages for
                each direction;
            m - returns the usage count for each of commands supported
                by the server; commands for which the usage count is
                zero MAY be omitted;
            o - returns a list of configured privileged users,
                operators;
            u - returns a string showing how long the server has been
                up.
        
            l - returns a list of the server's connections, showing how
                long each connection has been established and the
                traffic over that connection in Kbytes and messages for
                each direction;
            m - returns the usage count for each of commands supported
                by the server; commands for which the usage count is
                zero MAY be omitted;
            o - returns a list of configured privileged users,
                operators;
            u - returns a string showing how long the server has been
                up.
        

It is also RECOMMENDED that client and server access configuration be published this way.

还建议以这种方式发布客户端和服务器访问配置。

Numeric Replies:

数字回复:

ERR_NOSUCHSERVER RPL_STATSLINKINFO RPL_STATSUPTIME RPL_STATSCOMMANDS RPL_STATSOLINE RPL_ENDOFSTATS

错误\u nosuch服务器RPL\u STATSLINKINFO RPL\u StatsOptime RPL\u STATSCOMMANDS RPL\u STATSOLINE RPL\u ENDOFSTATS

Examples:

示例:

STATS m ; Command to check the command usage for the server you are connected to

统计数字m;用于检查所连接服务器的命令使用情况的命令

3.4.5 Links message
3.4.5 链接消息
      Command: LINKS
   Parameters: [ [ <remote server> ] <server mask> ]
        
      Command: LINKS
   Parameters: [ [ <remote server> ] <server mask> ]
        

With LINKS, a user can list all servernames, which are known by the server answering the query. The returned list of servers MUST match the mask, or if no mask is given, the full list is returned.

通过链接,用户可以列出回答查询的服务器已知的所有服务器名。返回的服务器列表必须与掩码匹配,如果未提供掩码,则返回完整列表。

If <remote server> is given in addition to <server mask>, the LINKS command is forwarded to the first server found that matches that name (if any), and that server is then required to answer the query.

如果除了<server mask>之外还提供了<remote server>,则LINKS命令将转发到找到的第一个与该名称匹配的服务器(如果有),然后要求该服务器回答查询。

Numeric Replies:

数字回复:

ERR_NOSUCHSERVER RPL_LINKS RPL_ENDOFLINKS

错误\u nosuch服务器RPL\u链接RPL\u ENDOFLINKS

Examples:

示例:

   LINKS *.au                      ; Command to list all servers which
                                   have a name that matches *.au;
        
   LINKS *.au                      ; Command to list all servers which
                                   have a name that matches *.au;
        

LINKS *.edu *.bu.edu ; Command to list servers matching *.bu.edu as seen by the first server matching *.edu.

链接*.edu*.bu.edu;命令列出匹配*.bu.edu的服务器,如第一个匹配*.edu的服务器所示。

3.4.6 Time message
3.4.6 时间信息
      Command: TIME
   Parameters: [ <target> ]
        
      Command: TIME
   Parameters: [ <target> ]
        

The time command is used to query local time from the specified server. If the <target> parameter is not given, the server receiving the command must reply to the query.

time命令用于从指定的服务器查询本地时间。如果未给出<target>参数,则接收命令的服务器必须回复查询。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Numeric Replies:

数字回复:

ERR_NOSUCHSERVER RPL_TIME

错误\u nosuch服务器RPL\u时间

Examples: TIME tolsun.oulu.fi ; check the time on the server "tolson.oulu.fi"

示例:时间tolsun.oulu.fi;检查服务器“tolson.oulu.fi”上的时间

3.4.7 Connect message
3.4.7 连接消息
      Command: CONNECT
   Parameters: <target server> <port> [ <remote server> ]
        
      Command: CONNECT
   Parameters: <target server> <port> [ <remote server> ]
        

The CONNECT command can be used to request a server to try to establish a new connection to another server immediately. CONNECT is a privileged command and SHOULD be available only to IRC Operators. If a <remote server> is given and its mask doesn't match name of the parsing server, the CONNECT attempt is sent to the first match of remote server. Otherwise the CONNECT attempt is made by the server processing the request.

CONNECT命令可用于请求服务器立即尝试建立与另一台服务器的新连接。CONNECT是一个特权命令,应仅对IRC操作员可用。如果给定了<remote server>,且其掩码与解析服务器的名称不匹配,则会将连接尝试发送到第一个匹配的远程服务器。否则,将由处理请求的服务器进行连接尝试。

The server receiving a remote CONNECT command SHOULD generate a WALLOPS message describing the source and target of the request.

接收远程连接命令的服务器应生成一条描述请求源和目标的WALLOPS消息。

Numeric Replies:

数字回复:

ERR_NOSUCHSERVER ERR_NOPRIVILEGES ERR_NEEDMOREPARAMS

ERR_nosuch服务器ERR_NOPRIVILEGES ERR_needmore参数

Examples:

示例:

CONNECT tolsun.oulu.fi 6667 ; Command to attempt to connect local server to tolsun.oulu.fi on port 6667

连接tolsun.oulu.fi 6667;命令尝试将本地服务器连接到端口6667上的tolsun.oulu.fi

3.4.8 Trace message
3.4.8 跟踪消息
      Command: TRACE
   Parameters: [ <target> ]
        
      Command: TRACE
   Parameters: [ <target> ]
        

TRACE command is used to find the route to specific server and information about its peers. Each server that processes this command MUST report to the sender about it. The replies from pass-through links form a chain, which shows route to destination. After sending this reply back, the query MUST be sent to the next server until given <target> server is reached.

TRACE命令用于查找到特定服务器的路由及其对等方的信息。处理此命令的每个服务器都必须向发件人报告此命令。来自传递链接的回复形成一个链,显示到目的地的路由。返回此回复后,必须将查询发送到下一个服务器,直到到达给定的<target>服务器。

TRACE command is used to find the route to specific server. Each server that processes this message MUST tell the sender about it by sending a reply indicating it is a pass-through link, forming a chain of replies. After sending this reply back, it MUST then send the TRACE message to the next server until given server is reached. If the <target> parameter is omitted, it is RECOMMENDED that TRACE command sends a message to the sender telling which servers the local server has direct connection to.

TRACE命令用于查找到特定服务器的路由。处理此邮件的每个服务器都必须通过发送一个回复来告知发件人,该回复指示该邮件是一个传递链接,形成一个回复链。在发送回此回复后,它必须将跟踪消息发送到下一个服务器,直到到达给定的服务器。如果省略了<target>参数,建议TRACE命令向发送方发送一条消息,告知本地服务器与哪些服务器有直接连接。

If the destination given by <target> is an actual server, the destination server is REQUIRED to report all servers, services and operators which are connected to it; if the command was issued by an operator, the server MAY also report all users which are connected to it. If the destination given by <target> is a nickname, then only a reply for that nickname is given. If the <target> parameter is omitted, it is RECOMMENDED that the TRACE command is parsed as targeted to the processing server.

如果<target>给出的目的地是实际服务器,则要求目的地服务器报告与其连接的所有服务器、服务和运营商;如果该命令是由操作员发出的,服务器还可以报告连接到该命令的所有用户。如果<target>给出的目的地是一个昵称,则只给出该昵称的回复。如果省略<target>参数,建议将跟踪命令解析为处理服务器的目标。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Numeric Replies:

数字回复:

ERR_NOSUCHSERVER

ERR_nosuch服务器

If the TRACE message is destined for another server, all intermediate servers must return a RPL_TRACELINK reply to indicate that the TRACE passed through it and where it is going next.

如果跟踪消息的目的地是另一台服务器,则所有中间服务器都必须返回RPL_TRACELINK回复,以指示跟踪已通过该消息以及它下一步的去向。

RPL_TRACELINK

轨迹线

A TRACE reply may be composed of any number of the following numeric replies.

跟踪回复可以由以下任意数量的数字回复组成。

RPL_TRACECONNECTING RPL_TRACEHANDSHAKE RPL_TRACEUNKNOWN RPL_TRACEOPERATOR RPL_TRACEUSER RPL_TRACESERVER RPL_TRACESERVICE RPL_TRACENEWTYPE RPL_TRACECLASS RPL_TRACELOG RPL_TRACEEND

RPL_Trace连接RPL_Trace和Shake RPL_TRACEUNKNOWN RPL_TRACEOPERATOR RPL_TRACEUSER RPL_TRACESERVICE RPL_TRACESERVICE Trace类型RPL_TRACECLASS RPL_TRACELOG RPL_TRACEEND

Examples:

示例:

TRACE *.oulu.fi ; TRACE to a server matching *.oulu.fi

跟踪*.oulu.fi;跟踪到与*.oulu.fi匹配的服务器

3.4.9 Admin command
3.4.9 管理命令
      Command: ADMIN
   Parameters: [ <target> ]
        
      Command: ADMIN
   Parameters: [ <target> ]
        

The admin command is used to find information about the administrator of the given server, or current server if <target> parameter is omitted. Each server MUST have the ability to forward ADMIN messages to other servers.

admin命令用于查找给定服务器或当前服务器(如果省略<target>参数)的管理员信息。每个服务器都必须能够将管理消息转发到其他服务器。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Numeric Replies:

数字回复:

ERR_NOSUCHSERVER RPL_ADMINME RPL_ADMINLOC1 RPL_ADMINLOC2 RPL_ADMINEMAIL

错误\u nosuch服务器RPL\u管理员RPL\u管理员1 RPL\u管理员2 RPL\u管理员电子邮件

Examples:

示例:

ADMIN tolsun.oulu.fi ; request an ADMIN reply from tolsun.oulu.fi

管理tolsun.oulu.fi;从tolsun.oulu.fi请求管理员回复

ADMIN syrk ; ADMIN request for the server to which the user syrk is connected

行政学院;用户syrk连接到的服务器的管理请求

3.4.10 Info command
3.4.10 信息命令
      Command: INFO
   Parameters: [ <target> ]
        
      Command: INFO
   Parameters: [ <target> ]
        

The INFO command is REQUIRED to return information describing the server: its version, when it was compiled, the patchlevel, when it was started, and any other miscellaneous information which may be considered to be relevant.

INFO命令需要返回描述服务器的信息:其版本、编译时间、补丁级别、启动时间,以及任何其他可能被认为相关的杂项信息。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Numeric Replies:

数字回复:

ERR_NOSUCHSERVER RPL_INFO RPL_ENDOFINFO

错误\u nosuch服务器RPL\u信息RPL\u ENDOFINFO

Examples:

示例:

INFO csd.bu.edu ; request an INFO reply from csd.bu.edu

信息csd.bu.edu;请求csd.bu.edu提供信息回复

INFO Angel ; request info from the server that Angel is connected to.

信息天使;从Angel连接的服务器请求信息。

3.5 Service Query and Commands
3.5 服务查询和命令

The service query group of commands has been designed to return information about any service which is connected to the network.

服务查询命令组用于返回连接到网络的任何服务的信息。

3.5.1 Servlist message
3.5.1 服务列表消息
      Command: SERVLIST
   Parameters: [ <mask> [ <type> ] ]
        
      Command: SERVLIST
   Parameters: [ <mask> [ <type> ] ]
        

The SERVLIST command is used to list services currently connected to the network and visible to the user issuing the command. The optional parameters may be used to restrict the result of the query (to matching services names, and services type).

SERVLIST命令用于列出当前连接到网络并对发出该命令的用户可见的服务。可选参数可用于限制查询结果(以匹配服务名称和服务类型)。

Numeric Replies:

数字回复:

RPL_SERVLIST RPL_SERVLISTEND

RPL\u服务列表RPL\u服务列表

3.5.2 Squery
3.5.2 斯奎里
      Command: SQUERY
   Parameters: <servicename> <text>
        
      Command: SQUERY
   Parameters: <servicename> <text>
        

The SQUERY command is used similarly to PRIVMSG. The only difference is that the recipient MUST be a service. This is the only way for a text message to be delivered to a service.

SQUERY命令的用法与PRIVMSG类似。唯一的区别是收件人必须是服务。这是将文本消息传递到服务的唯一方法。

See PRIVMSG for more details on replies and example.

有关回复和示例的更多详细信息,请参见PRIVMSG。

Examples:

示例:

SQUERY irchelp :HELP privmsg ; Message to the service with nickname irchelp.

SQUERY-irchhelp:HELP-privmsg;发送给昵称为IRHelp的服务的消息。

SQUERY dict@irc.fr :fr2en blaireau ; Message to the service with name dict@irc.fr.

斯奎里dict@irc.fr:fr2en blaireau;发送给名为的服务的消息dict@irc.fr.

3.6 User based queries
3.6 基于用户的查询

User queries are a group of commands which are primarily concerned with finding details on a particular user or group users. When using wildcards with any of these commands, if they match, they will only return information on users who are 'visible' to you. The visibility of a user is determined as a combination of the user's mode and the common set of channels you are both on.

用户查询是一组命令,主要用于查找特定用户或用户组的详细信息。当将通配符与这些命令中的任何一个一起使用时,如果它们匹配,它们将只返回有关您“可见”的用户的信息。用户的可见性取决于用户模式和您所在的公共频道集的组合。

Although services SHOULD NOT be using this class of message, they are allowed to.

虽然服务不应使用此类消息,但允许它们使用。

3.6.1 Who query
3.6.1 谁质疑
      Command: WHO
   Parameters: [ <mask> [ "o" ] ]
        
      Command: WHO
   Parameters: [ <mask> [ "o" ] ]
        

The WHO command is used by a client to generate a query which returns a list of information which 'matches' the <mask> parameter given by the client. In the absence of the <mask> parameter, all visible (users who aren't invisible (user mode +i) and who don't have a common channel with the requesting client) are listed. The same result can be achieved by using a <mask> of "0" or any wildcard which will end up matching every visible user.

客户机使用WHO命令生成查询,该查询返回与客户机给定的<mask>参数“匹配”的信息列表。在没有<mask>参数的情况下,将列出所有可见的用户(不可见的用户(用户模式+i)以及与请求客户端没有公共通道的用户)。同样的结果可以通过使用<mask>的“0”或任何通配符来实现,这些通配符最终将匹配每个可见的用户。

The <mask> passed to WHO is matched against users' host, server, real name and nickname if the channel <mask> cannot be found.

如果找不到频道<mask>,则传递给WHO的<mask>将与用户的主机、服务器、真实姓名和昵称匹配。

If the "o" parameter is passed only operators are returned according to the <mask> supplied.

如果传递了“o”参数,则根据提供的<mask>仅返回运算符。

Numeric Replies:

数字回复:

ERR_NOSUCHSERVER RPL_WHOREPLY RPL_ENDOFWHO

错误:没有这样的服务器RPL\u旋转RPL\u ENDOFWHO

Examples:

示例:

WHO *.fi ; Command to list all users who match against "*.fi".

世卫组织*.fi;命令列出与“*.fi”匹配的所有用户。

WHO jto* o ; Command to list all users with a match against "jto*" if they are an operator.

世卫组织jto*o;命令列出所有与“jto*”匹配的用户(如果他们是操作员)。

3.6.2 Whois query
3.6.2 谁的疑问
      Command: WHOIS
   Parameters: [ <target> ] <mask> *( "," <mask> )
        
      Command: WHOIS
   Parameters: [ <target> ] <mask> *( "," <mask> )
        

This command is used to query information about particular user. The server will answer this command with several numeric messages indicating different statuses of each user which matches the mask (if you are entitled to see them). If no wildcard is present in the <mask>, any information about that nick which you are allowed to see is presented.

此命令用于查询有关特定用户的信息。服务器将通过几个数字消息响应此命令,这些消息指示与掩码匹配的每个用户的不同状态(如果您有权查看)。如果<mask>中没有通配符,则会显示允许您查看的有关该缺口的任何信息。

If the <target> parameter is specified, it sends the query to a specific server. It is useful if you want to know how long the user in question has been idle as only local server (i.e., the server the user is directly connected to) knows that information, while everything else is globally known.

如果指定了<target>参数,它会将查询发送到特定服务器。如果您想知道所讨论的用户空闲了多长时间,这很有用,因为只有本地服务器(即用户直接连接到的服务器)知道该信息,而其他一切都是全局已知的。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Numeric Replies:

数字回复:

ERR_NOSUCHSERVER ERR_NONICKNAMEGIVEN RPL_WHOISUSER RPL_WHOISCHANNELS RPL_WHOISCHANNELS RPL_WHOISSERVER RPL_AWAY RPL_WHOISOPERATOR RPL_WHOISIDLE ERR_NOSUCHNICK RPL_ENDOFWHOIS

错误:没有访问服务器错误:没有访问权限:没有访问权限:没有访问权限:没有访问权限

Examples:

示例:

WHOIS wiz ; return available user information about nick WiZ

谁是天才;返回有关nick WiZ的可用用户信息

WHOIS eff.org trillian ; ask server eff.org for user information about trillian

WHOIS eff.org trillian;询问server eff.org以获取有关trillian的用户信息

3.6.3 Whowas
3.6.3 是谁
      Command: WHOWAS
   Parameters: <nickname> *( "," <nickname> ) [ <count> [ <target> ] ]
        
      Command: WHOWAS
   Parameters: <nickname> *( "," <nickname> ) [ <count> [ <target> ] ]
        

Whowas asks for information about a nickname which no longer exists. This may either be due to a nickname change or the user leaving IRC. In response to this query, the server searches through its nickname history, looking for any nicks which are lexically the same (no wild card matching here). The history is searched backward, returning the most recent entry first. If there are multiple entries, up to <count> replies will be returned (or all of them if no <count> parameter is given). If a non-positive number is passed as being <count>, then a full search is done.

Whowas询问一个已不存在的昵称的信息。这可能是由于昵称更改或用户离开IRC造成的。作为对该查询的响应,服务器搜索其昵称历史记录,查找词汇上相同的任何刻痕(此处没有通配符匹配)。将向后搜索历史记录,首先返回最近的条目。如果有多个条目,将返回最多<count>个回复(如果未给出<count>参数,则返回所有回复)。如果将非正数作为<count>传递,则完成完整搜索。

Wildcards are allowed in the <target> parameter.

<target>参数中允许使用通配符。

Numeric Replies:

数字回复:

ERR_NONICKNAMEGIVEN ERR_WASNOSUCHNICK RPL_WHOWASUSER RPL_WHOISSERVER RPL_ENDOFWHOWAS

不可复制的错误不包括用户RPL和服务器RPL

Examples:

示例:

WHOWAS Wiz ; return all information in the nick history about nick "WiZ";

谁是天才;返回nick历史记录中有关nick“WiZ”的所有信息;

WHOWAS Mermaid 9 ; return at most, the 9 most recent entries in the nick history for "Mermaid";

谁是美人鱼9号;最多返回“美人鱼”尼克历史上最近的9个条目;

WHOWAS Trillian 1 *.edu ; return the most recent history for "Trillian" from the first server found to match "*.edu".

谁是Trillian 1*.edu;从找到的第一台匹配“*.edu”的服务器返回“Trillian”的最新历史记录。

3.7 Miscellaneous messages
3.7 杂项消息

Messages in this category do not fit into any of the above categories but are nonetheless still a part of and REQUIRED by the protocol.

此类别中的消息不属于上述任何类别,但仍然是协议的一部分,并且是协议所要求的。

3.7.1 Kill message
3.7.1 终止消息
      Command: KILL
   Parameters: <nickname> <comment>
        
      Command: KILL
   Parameters: <nickname> <comment>
        

The KILL command is used to cause a client-server connection to be closed by the server which has the actual connection. Servers generate KILL messages on nickname collisions. It MAY also be available available to users who have the operator status.

KILL命令用于使具有实际连接的服务器关闭客户机-服务器连接。服务器在昵称冲突时生成KILL消息。具有操作员状态的用户也可以使用它。

Clients which have automatic reconnect algorithms effectively make this command useless since the disconnection is only brief. It does however break the flow of data and can be used to stop large amounts of 'flooding' from abusive users or accidents. Abusive users usually don't care as they will reconnect promptly and resume their abusive behaviour. To prevent this command from being abused, any user may elect to receive KILL messages generated for others to keep an 'eye' on would be trouble spots.

具有自动重新连接算法的客户端有效地使该命令无效,因为断开连接只是短暂的。然而,它确实会破坏数据流,并可用于阻止来自滥用用户或事故的大量“泛滥”。滥用职权的用户通常不会在意,因为他们会迅速重新连接并恢复其滥用职权的行为。为了防止该命令被滥用,任何用户都可以选择接收为其他人生成的KILL消息,以“监视”可能出现问题的地方。

In an arena where nicknames are REQUIRED to be globally unique at all times, KILL messages are sent whenever 'duplicates' are detected (that is an attempt to register two users with the same nickname) in the hope that both of them will disappear and only 1 reappear.

在要求昵称在任何时候都是全局唯一的竞技场中,每当检测到“重复”时(即试图用相同的昵称注册两个用户),就会发送KILL消息,希望这两个用户都消失,只有一个重新出现。

When a client is removed as the result of a KILL message, the server SHOULD add the nickname to the list of unavailable nicknames in an attempt to avoid clients to reuse this name immediately which is usually the pattern of abusive behaviour often leading to useless "KILL loops". See the "IRC Server Protocol" document [IRC-SERVER] for more information on this procedure.

当客户机由于KILL消息而被删除时,服务器应将昵称添加到不可用昵称列表中,以避免客户机立即重用此名称,这通常是滥用行为的模式,通常会导致无用的“KILL循环”。有关此过程的更多信息,请参阅“IRC服务器协议”文档[IRC-Server]。

The comment given MUST reflect the actual reason for the KILL. For server-generated KILLs it usually is made up of details concerning the origins of the two conflicting nicknames. For users it is left up to them to provide an adequate reason to satisfy others who see it. To prevent/discourage fake KILLs from being generated to hide the identify of the KILLer, the comment also shows a 'kill-path' which is updated by each server it passes through, each prepending its name to the path.

给出的评论必须反映杀人的实际原因。对于服务器生成的kill,它通常由关于两个冲突昵称的来源的详细信息组成。对于用户来说,让他们提供充分的理由来满足看到它的其他人。为了防止/阻止生成虚假的杀戮以隐藏杀戮者的身份,注释还显示了一个“杀戮路径”,该路径由它经过的每个服务器更新,每个服务器都在路径前加上其名称。

Numeric Replies:

数字回复:

ERR_NOPRIVILEGES ERR_NEEDMOREPARAMS ERR_NOSUCHNICK ERR_CANTKILLSERVER

ERR\u NOPRIVILEGES ERR\u Needmore参数ERR\u NOSUCHNICK ERR\u CANTKILLSERVER

NOTE: It is RECOMMENDED that only Operators be allowed to kill other users with KILL command. This command has been the subject of many controversies over the years, and along with the above recommendation, it is also widely recognized that not even operators should be allowed to kill users on remote servers.

注意:建议仅允许操作员使用kill命令杀死其他用户。多年来,该命令一直是许多争议的主题,与上述建议一起,人们也普遍认为,即使是操作员也不应被允许杀死远程服务器上的用户。

3.7.2 Ping message
3.7.2 Ping消息
      Command: PING
   Parameters: <server1> [ <server2> ]
        
      Command: PING
   Parameters: <server1> [ <server2> ]
        

The PING command is used to test the presence of an active client or server at the other end of the connection. Servers send a PING message at regular intervals if no other activity detected coming from a connection. If a connection fails to respond to a PING message within a set amount of time, that connection is closed. A PING message MAY be sent even if the connection is active.

PING命令用于测试连接另一端是否存在活动客户端或服务器。如果未检测到来自连接的其他活动,服务器将定期发送PING消息。如果连接在设定的时间内未能响应PING消息,则该连接将关闭。即使连接处于活动状态,也可能会发送PING消息。

When a PING message is received, the appropriate PONG message MUST be sent as reply to <server1> (server which sent the PING message out) as soon as possible. If the <server2> parameter is specified, it represents the target of the ping, and the message gets forwarded there.

收到PING消息后,必须尽快将相应的PONG消息作为回复发送到<server1>(发送PING消息的服务器)。如果指定了<server2>参数,则它表示ping的目标,并将消息转发到该目标。

Numeric Replies:

数字回复:

ERR_NOORIGIN ERR_NOSUCHSERVER

错误不存在错误不存在服务器

Examples:

示例:

PING tolsun.oulu.fi ; Command to send a PING message to server

PING tolsun.oulu.fi;命令向服务器发送PING消息

PING WiZ tolsun.oulu.fi ; Command from WiZ to send a PING message to server "tolsun.oulu.fi"

PING WiZ tolsun.oulu.fi;WiZ向服务器“tolsun.oulu.fi”发送PING消息的命令

PING :irc.funet.fi ; Ping message sent by server "irc.funet.fi"

PING:irc.funet.fi;服务器“irc.funet.fi”发送的Ping消息

3.7.3 Pong message
3.7.3 乒乓球信息
      Command: PONG
   Parameters: <server> [ <server2> ]
        
      Command: PONG
   Parameters: <server> [ <server2> ]
        

PONG message is a reply to ping message. If parameter <server2> is given, this message MUST be forwarded to given target. The <server> parameter is the name of the entity who has responded to PING message and generated this message.

PONG消息是对ping消息的回复。如果给定参数<server2>,则必须将此消息转发给给定目标。<server>参数是响应PING消息并生成此消息的实体的名称。

Numeric Replies:

数字回复:

ERR_NOORIGIN ERR_NOSUCHSERVER

错误不存在错误不存在服务器

Example:

例子:

PONG csd.bu.edu tolsun.oulu.fi ; PONG message from csd.bu.edu to tolsun.oulu.fi

PONG csd.bu.edu tolsun.oulu.fi;从csd.bu.edu到tolsun.oulu.fi的PONG消息

3.7.4 Error
3.7.4 错误
      Command: ERROR
   Parameters: <error message>
        
      Command: ERROR
   Parameters: <error message>
        

The ERROR command is for use by servers when reporting a serious or fatal error to its peers. It may also be sent from one server to another but MUST NOT be accepted from any normal unknown clients.

ERROR命令供服务器在向其对等方报告严重或致命错误时使用。它也可以从一台服务器发送到另一台服务器,但不能从任何正常的未知客户端接受。

Only an ERROR message SHOULD be used for reporting errors which occur with a server-to-server link. An ERROR message is sent to the server at the other end (which reports it to appropriate local users and logs) and to appropriate local users and logs. It is not to be passed onto any other servers by a server if it is received from a server.

只有错误消息应用于报告服务器到服务器链接中发生的错误。将向另一端的服务器(向相应的本地用户和日志报告)和相应的本地用户和日志发送错误消息。如果它是从服务器接收的,则服务器不会将其传递到任何其他服务器。

The ERROR message is also used before terminating a client connection.

在终止客户端连接之前也会使用错误消息。

When a server sends a received ERROR message to its operators, the message SHOULD be encapsulated inside a NOTICE message, indicating that the client was not responsible for the error.

当服务器向其操作员发送接收到的错误消息时,该消息应封装在通知消息中,指示客户端不对错误负责。

Numerics:

数字:

None.

没有一个

Examples:

示例:

ERROR :Server *.fi already exists ; ERROR message to the other server which caused this error.

错误:服务器*.fi已存在;发送给导致此错误的其他服务器的错误消息。

NOTICE WiZ :ERROR from csd.bu.edu -- Server *.fi already exists ; Same ERROR message as above but sent to user WiZ on the other server.

注意WiZ:csd.bu.edu中的错误——服务器*.fi已经存在;与上述错误消息相同,但已发送到另一台服务器上的用户WiZ。

4. Optional features
4. 可选功能

This section describes OPTIONAL messages. They are not required in a working server implementation of the protocol described herein. In the absence of the feature, an error reply message MUST be generated or an unknown command error. If the message is destined for another server to answer then it MUST be passed on (elementary parsing REQUIRED) The allocated numerics for this are listed with the messages below.

本节介绍可选消息。在本文描述的协议的工作服务器实现中不需要它们。如果没有该功能,则必须生成错误回复消息或未知命令错误。如果消息的目的地是另一台服务器,则必须将其传递(需要进行基本解析)。为此分配的数字与下面的消息一起列出。

From this section, only the USERHOST and ISON messages are available to services.

在本节中,只有USERHOST和ISON消息可用于服务。

4.1 Away
4.1 离开
      Command: AWAY
   Parameters: [ <text> ]
        
      Command: AWAY
   Parameters: [ <text> ]
        

With the AWAY command, clients can set an automatic reply string for any PRIVMSG commands directed at them (not to a channel they are on). The server sends an automatic reply to the client sending the PRIVMSG command. The only replying server is the one to which the sending client is connected to.

使用AWAY命令,客户端可以为指向它们的任何PRIVMSG命令(而不是它们所在的频道)设置自动回复字符串。服务器向发送PRIVMSG命令的客户端发送自动回复。唯一的应答服务器是发送客户端连接到的服务器。

The AWAY command is used either with one parameter, to set an AWAY message, or with no parameters, to remove the AWAY message.

AWAY命令可以与一个参数一起使用,用于设置AWAY消息,也可以不带参数,用于删除AWAY消息。

Because of its high cost (memory and bandwidth wise), the AWAY message SHOULD only be used for client-server communication. A server MAY choose to silently ignore AWAY messages received from other servers. To update the away status of a client across servers, the user mode 'a' SHOULD be used instead. (See Section 3.1.5)

由于其高成本(内存和带宽方面),离开消息应仅用于客户机-服务器通信。服务器可以选择以静默方式忽略从其他服务器接收的消息。要跨服务器更新客户端的离开状态,应改用用户模式“a”。(见第3.1.5节)

Numeric Replies:

数字回复:

RPL_UNAWAY RPL_NOWAWAY

绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对绝对

Example:

例子:

AWAY :Gone to lunch. Back in 5 ; Command to set away message to "Gone to lunch. Back in 5".

离开:去吃午饭了。回到5岁;命令将消息设置为“去吃午饭,5分钟后回来”。

4.2 Rehash message
4.2 重播消息

Command: REHASH Parameters: None

命令:重新设置参数:无

The rehash command is an administrative command which can be used by an operator to force the server to re-read and process its configuration file.

rehash命令是一个管理命令,操作员可以使用该命令强制服务器重新读取和处理其配置文件。

Numeric Replies:

数字回复:

RPL_REHASHING ERR_NOPRIVILEGES

RPL_再灰化错误_无特权

Example:

例子:

REHASH ; message from user with operator status to server asking it to reread its configuration file.

再灰化;具有操作员状态的用户向服务器发送的消息,要求服务器重新读取其配置文件。

4.3 Die message
4.3 死亡讯息

Command: DIE Parameters: None

命令:模具参数:无

An operator can use the DIE command to shutdown the server. This message is optional since it may be viewed as a risk to allow arbitrary people to connect to a server as an operator and execute this command.

操作员可以使用DIE命令关闭服务器。此消息是可选的,因为它可能被视为允许任意人员作为操作员连接到服务器并执行此命令的风险。

The DIE command MUST always be fully processed by the server to which the sending client is connected and MUST NOT be passed onto other connected servers.

DIE命令必须始终由发送客户端所连接的服务器完全处理,并且不得传递到其他连接的服务器。

Numeric Replies:

数字回复:

ERR_NOPRIVILEGES

厄尔诺特权

Example:

例子:

DIE ; no parameters required.

死亡不需要参数。

4.4 Restart message
4.4 重新启动消息

Command: RESTART Parameters: None

命令:重新启动参数:无

An operator can use the restart command to force the server to restart itself. This message is optional since it may be viewed as a risk to allow arbitrary people to connect to a server as an operator and execute this command, causing (at least) a disruption to service.

操作员可以使用restart命令强制服务器重新启动自身。此消息是可选的,因为它可能被视为允许任意人员作为操作员连接到服务器并执行此命令的风险,从而导致(至少)服务中断。

The RESTART command MUST always be fully processed by the server to which the sending client is connected and MUST NOT be passed onto other connected servers.

重新启动命令必须始终由发送客户端所连接的服务器完全处理,并且不得传递到其他连接的服务器。

Numeric Replies:

数字回复:

ERR_NOPRIVILEGES

厄尔诺特权

Example:

例子:

RESTART ; no parameters required.

重新启动;不需要参数。

4.5 Summon message
4.5 召唤信息
      Command: SUMMON
   Parameters: <user> [ <target> [ <channel> ] ]
        
      Command: SUMMON
   Parameters: <user> [ <target> [ <channel> ] ]
        

The SUMMON command can be used to give users who are on a host running an IRC server a message asking them to please join IRC. This message is only sent if the target server (a) has SUMMON enabled, (b) the user is logged in and (c) the server process can write to the user's tty (or similar).

召唤命令可用于向运行IRC服务器的主机上的用户发送一条消息,要求他们加入IRC。仅当目标服务器(a)已启用召唤,(b)用户已登录,并且(c)服务器进程可以写入用户的tty(或类似)时,才会发送此消息。

If no <server> parameter is given it tries to summon <user> from the server the client is connected to is assumed as the target.

如果未给出<server>参数,则会尝试从客户端连接的服务器调用<user>,并将其视为目标。

If summon is not enabled in a server, it MUST return the ERR_SUMMONDISABLED numeric.

如果服务器中未启用召唤,则必须返回ERR_召唤禁用数字。

Numeric Replies:

数字回复:

ERR_NORECIPIENT ERR_FILEERROR ERR_NOLOGIN ERR_NOSUCHSERVER ERR_SUMMONDISABLED RPL_SUMMONING

错误\u非特定错误\u文件错误\u NOLOGIN错误\u nosuch服务器错误\u调用已禁用RPL\u调用

Examples:

示例:

SUMMON jto ; summon user jto on the server's host

传唤jto;在服务器主机上调用用户jto

SUMMON jto tolsun.oulu.fi ; summon user jto on the host which a server named "tolsun.oulu.fi" is running.

传唤jto tolsun.oulu.fi;在名为“tolsun.oulu.fi”的服务器正在运行的主机上调用用户jto。

4.6 Users
4.6 使用者
      Command: USERS
   Parameters: [ <target> ]
        
      Command: USERS
   Parameters: [ <target> ]
        

The USERS command returns a list of users logged into the server in a format similar to the UNIX commands who(1), rusers(1) and finger(1). If disabled, the correct numeric MUST be returned to indicate this.

USERS命令返回登录到服务器的用户列表,其格式类似于UNIX命令who(1)、rusers(1)和finger(1)。如果禁用,则必须返回正确的数字以指示此情况。

Because of the security implications of such a command, it SHOULD be disabled by default in server implementations. Enabling it SHOULD require recompiling the server or some equivalent change rather than simply toggling an option and restarting the server. The procedure to enable this command SHOULD also include suitable large comments.

由于这种命令的安全性,在服务器实现中默认情况下应该禁用它。启用它应该需要重新编译服务器或进行一些等效的更改,而不是简单地切换一个选项并重新启动服务器。启用此命令的过程还应包括适当的大注释。

Numeric Replies:

数字回复:

ERR_NOSUCHSERVER ERR_FILEERROR RPL_USERSSTART RPL_USERS RPL_NOUSERS RPL_ENDOFUSERS ERR_USERSDISABLED

错误\u nosuch服务器错误\u文件错误RPL\u用户启动RPL\u用户RPL\u用户RPL\u内聚器错误\u用户禁用

Disabled Reply:

答复:

ERR_USERSDISABLED

错误用户禁用

Example:

例子:

USERS eff.org ; request a list of users logged in on server eff.org

用户eff.org;请求登录服务器eff.org的用户列表

4.7 Operwall message
4.7 操作墙消息
      Command: WALLOPS
   Parameters: <Text to be sent>
        
      Command: WALLOPS
   Parameters: <Text to be sent>
        

The WALLOPS command is used to send a message to all currently connected users who have set the 'w' user mode for themselves. (See Section 3.1.5 "User modes").

WALLOPS命令用于向所有已为自己设置“w”用户模式的当前连接用户发送消息。(见第3.1.5节“用户模式”)。

After implementing WALLOPS as a user command it was found that it was often and commonly abused as a means of sending a message to a lot of people. Due to this, it is RECOMMENDED that the implementation of WALLOPS allows and recognizes only servers as the originators of WALLOPS.

在将WALLOPS作为一个用户命令实现后,人们发现它经常被滥用,被当作向许多人发送消息的手段。因此,建议WALLOPS的实施只允许并承认服务器是WALLOPS的发起人。

Numeric Replies:

数字回复:

ERR_NEEDMOREPARAMS

错误需要更多参数

Example:

例子:

:csd.bu.edu WALLOPS :Connect '*.uiuc.edu 6667' from Joshua ; WALLOPS message from csd.bu.edu announcing a CONNECT message it received from Joshua and acted upon.

:csd.bu.edu WALLOPS:连接Joshua的“*.uiuc.edu 6667”;来自csd.bu.edu的WALLOPS消息,宣布从Joshua收到连接消息并采取行动。

4.8 Userhost message
4.8 用户主机消息
      Command: USERHOST
   Parameters: <nickname> *( SPACE <nickname> )
        
      Command: USERHOST
   Parameters: <nickname> *( SPACE <nickname> )
        

The USERHOST command takes a list of up to 5 nicknames, each separated by a space character and returns a list of information about each nickname that it found. The returned list has each reply separated by a space.

USERHOST命令获取最多5个昵称的列表,每个昵称由空格字符分隔,并返回找到的每个昵称的信息列表。返回的列表中的每个回复都用空格分隔。

Numeric Replies:

数字回复:

RPL_USERHOST ERR_NEEDMOREPARAMS

RPL\u用户主机错误\u需要更多参数

Example:

例子:

USERHOST Wiz Michael syrk ; USERHOST request for information on nicks "Wiz", "Michael", and "syrk"

用户主机wizmichaelsyrk;USERHOST请求有关nicks“Wiz”、“Michael”和“syrk”的信息

   :ircd.stealth.net 302 yournick :syrk=+syrk@millennium.stealth.net
                                   ; Reply for user syrk
        
   :ircd.stealth.net 302 yournick :syrk=+syrk@millennium.stealth.net
                                   ; Reply for user syrk
        
4.9 Ison message
4.9 伊森电文
      Command: ISON
   Parameters: <nickname> *( SPACE <nickname> )
        
      Command: ISON
   Parameters: <nickname> *( SPACE <nickname> )
        

The ISON command was implemented to provide a quick and efficient means to get a response about whether a given nickname was currently on IRC. ISON only takes one (1) type of parameter: a space-separated list of nicks. For each nickname in the list that is present, the

实现ISON命令是为了提供一种快速有效的方法来获取关于给定昵称当前是否在IRC上的响应。ISON只接受一(1)种类型的参数:以空格分隔的刻痕列表。对于列表中存在的每个昵称

server adds that to its reply string. Thus the reply string may return empty (none of the given nicks are present), an exact copy of the parameter string (all of them present) or any other subset of the set of nicks given in the parameter. The only limit on the number of nicks that may be checked is that the combined length MUST NOT be too large as to cause the server to chop it off so it fits in 512 characters.

服务器将其添加到其回复字符串中。因此,应答字符串可能返回空(不存在任何给定刻痕)、参数字符串的精确副本(所有刻痕都存在)或参数中给定刻痕集的任何其他子集。可以检查的刻痕数量的唯一限制是,组合长度不能太大,以免导致服务器将其切掉,以适合512个字符。

ISON is only processed by the server local to the client sending the command and thus not passed onto other servers for further processing.

ISON仅由发送命令的客户端本地服务器处理,因此不会传递到其他服务器进行进一步处理。

Numeric Replies:

数字回复:

RPL_ISON ERR_NEEDMOREPARAMS

RPL_ISON ERR_needmore参数

Example:

例子:

ISON phone trillian WiZ jarlek Avalon Angel Monstah syrk ; Sample ISON request for 7 nicks.

伊森·电话特里利安·威兹·贾勒克·阿瓦隆·安吉尔·蒙斯塔·塞尔克;7个缺口的样品要求。

5. Replies
5. 答复

The following is a list of numeric replies which are generated in response to the commands given above. Each numeric is given with its number, name and reply string.

以下是响应上述命令生成的数字回复列表。每个数字都有其编号、名称和回复字符串。

5.1 Command responses
5.1 命令响应

Numerics in the range from 001 to 099 are used for client-server connections only and should never travel between servers. Replies generated in the response to commands are found in the range from 200 to 399.

001到099范围内的数字仅用于客户端-服务器连接,不应在服务器之间移动。在对命令的响应中生成的回复范围为200到399。

       001    RPL_WELCOME
              "Welcome to the Internet Relay Network
               <nick>!<user>@<host>"
       002    RPL_YOURHOST
              "Your host is <servername>, running version <ver>"
       003    RPL_CREATED
              "This server was created <date>"
       004    RPL_MYINFO
              "<servername> <version> <available user modes>
               <available channel modes>"
        
       001    RPL_WELCOME
              "Welcome to the Internet Relay Network
               <nick>!<user>@<host>"
       002    RPL_YOURHOST
              "Your host is <servername>, running version <ver>"
       003    RPL_CREATED
              "This server was created <date>"
       004    RPL_MYINFO
              "<servername> <version> <available user modes>
               <available channel modes>"
        

- The server sends Replies 001 to 004 to a user upon successful registration.

- 成功注册后,服务器向用户发送回复001到004。

       005    RPL_BOUNCE
              "Try server <server name>, port <port number>"
        
       005    RPL_BOUNCE
              "Try server <server name>, port <port number>"
        

- Sent by the server to a user to suggest an alternative server. This is often used when the connection is refused because the server is already full.

- 由服务器发送给用户以建议替代服务器。当由于服务器已满而拒绝连接时,通常使用此选项。

       302    RPL_USERHOST
              ":*1<reply> *( " " <reply> )"
        
       302    RPL_USERHOST
              ":*1<reply> *( " " <reply> )"
        

- Reply format used by USERHOST to list replies to the query list. The reply string is composed as follows:

- USERHOST用于列出对查询列表的答复的答复格式。回复字符串的组成如下所示:

           reply = nickname [ "*" ] "=" ( "+" / "-" ) hostname
        
           reply = nickname [ "*" ] "=" ( "+" / "-" ) hostname
        

The '*' indicates whether the client has registered as an Operator. The '-' or '+' characters represent whether the client has set an AWAY message or not respectively.

“*”表示客户端是否已注册为操作员。“-”或“+”字符分别表示客户机是否设置了离开消息。

       303    RPL_ISON
              ":*1<nick> *( " " <nick> )"
        
       303    RPL_ISON
              ":*1<nick> *( " " <nick> )"
        

- Reply format used by ISON to list replies to the query list.

- ISON用于列出对查询列表的答复的答复格式。

301 RPL_AWAY "<nick> :<away message>" 305 RPL_UNAWAY ":You are no longer marked as being away" 306 RPL_NOWAWAY ":You have been marked as being away"

301 RPL_离开“<nick>:<AWAY message>“305 RPL_UNAWAY”:您不再被标记为离开“306 RPL_NOWAWAY”:您已被标记为离开”

- These replies are used with the AWAY command (if allowed). RPL_AWAY is sent to any client sending a PRIVMSG to a client which is away. RPL_AWAY is only sent by the server to which the client is connected. Replies RPL_UNAWAY and RPL_NOWAWAY are sent when the client removes and sets an AWAY message.

- 这些回复与AWAY命令一起使用(如果允许)。RPL_AWAY发送给任何向不在的客户端发送PRIVMSG的客户端。RPL_AWAY仅由客户端连接的服务器发送。当客户端删除并设置一条离开消息时,将发送回复RPL_unway和RPL_NOWAWAY。

       311    RPL_WHOISUSER
              "<nick> <user> <host> * :<real name>"
       312    RPL_WHOISSERVER
              "<nick> <server> :<server info>"
       313    RPL_WHOISOPERATOR
              "<nick> :is an IRC operator"
        
       311    RPL_WHOISUSER
              "<nick> <user> <host> * :<real name>"
       312    RPL_WHOISSERVER
              "<nick> <server> :<server info>"
       313    RPL_WHOISOPERATOR
              "<nick> :is an IRC operator"
        
       317    RPL_WHOISIDLE
              "<nick> <integer> :seconds idle"
       318    RPL_ENDOFWHOIS
              "<nick> :End of WHOIS list"
       319    RPL_WHOISCHANNELS
              "<nick> :*( ( "@" / "+" ) <channel> " " )"
        
       317    RPL_WHOISIDLE
              "<nick> <integer> :seconds idle"
       318    RPL_ENDOFWHOIS
              "<nick> :End of WHOIS list"
       319    RPL_WHOISCHANNELS
              "<nick> :*( ( "@" / "+" ) <channel> " " )"
        

- Replies 311 - 313, 317 - 319 are all replies generated in response to a WHOIS message. Given that there are enough parameters present, the answering server MUST either formulate a reply out of the above numerics (if the query nick is found) or return an error reply. The '*' in RPL_WHOISUSER is there as the literal character and not as a wild card. For each reply set, only RPL_WHOISCHANNELS may appear more than once (for long lists of channel names). The '@' and '+' characters next to the channel name indicate whether a client is a channel operator or has been granted permission to speak on a moderated channel. The RPL_ENDOFWHOIS reply is used to mark the end of processing a WHOIS message.

- 回复311-313、317-319都是响应WHOIS消息生成的回复。假设存在足够的参数,应答服务器必须从上述数字中得出一个应答(如果找到查询缺口),或者返回一个错误应答。RPL_WHOISUSER中的“*”作为文字字符而不是通配符存在。对于每个回复集,只有RPL_whoischnels可以出现多次(对于通道名称的长列表)。频道名称旁边的“@”和“+”字符表示客户端是频道运营商还是已被授予在主持人频道上讲话的权限。RPL_endofhois回复用于标记WHOIS消息处理的结束。

       314    RPL_WHOWASUSER
              "<nick> <user> <host> * :<real name>"
       369    RPL_ENDOFWHOWAS
              "<nick> :End of WHOWAS"
        
       314    RPL_WHOWASUSER
              "<nick> <user> <host> * :<real name>"
       369    RPL_ENDOFWHOWAS
              "<nick> :End of WHOWAS"
        

- When replying to a WHOWAS message, a server MUST use the replies RPL_WHOWASUSER, RPL_WHOISSERVER or ERR_WASNOSUCHNICK for each nickname in the presented list. At the end of all reply batches, there MUST be RPL_ENDOFWHOWAS (even if there was only one reply and it was an error).

- 在回复WHOWAS消息时,服务器必须对显示列表中的每个昵称使用回复RPL_WHOWASUSER、RPL_WHOISSERVER或ERR_WASNOSUCHNICK。在所有回复批处理结束时,必须有RPL_endofwhoas(即使只有一个回复并且是错误)。

321 RPL_LISTSTART Obsolete. Not used.

321 RPL_列表开始过时。没有用。

       322    RPL_LIST
              "<channel> <# visible> :<topic>"
       323    RPL_LISTEND
              ":End of LIST"
        
       322    RPL_LIST
              "<channel> <# visible> :<topic>"
       323    RPL_LISTEND
              ":End of LIST"
        

- Replies RPL_LIST, RPL_LISTEND mark the actual replies with data and end of the server's response to a LIST command. If there are no channels available to return, only the end reply MUST be sent.

- 回复RPL_列表,RPL_列表使用数据标记实际回复,并结束服务器对LIST命令的响应。如果没有可返回的频道,则只需发送结束回复。

       325    RPL_UNIQOPIS
              "<channel> <nickname>"
        
       325    RPL_UNIQOPIS
              "<channel> <nickname>"
        
       324    RPL_CHANNELMODEIS
              "<channel> <mode> <mode params>"
        
       324    RPL_CHANNELMODEIS
              "<channel> <mode> <mode params>"
        
       331    RPL_NOTOPIC
              "<channel> :No topic is set"
       332    RPL_TOPIC
              "<channel> :<topic>"
        
       331    RPL_NOTOPIC
              "<channel> :No topic is set"
       332    RPL_TOPIC
              "<channel> :<topic>"
        

- When sending a TOPIC message to determine the channel topic, one of two replies is sent. If the topic is set, RPL_TOPIC is sent back else RPL_NOTOPIC.

- 发送主题消息以确定频道主题时,将发送两个回复中的一个。如果设置了主题,则会将RPL\U主题发送回else RPL\U NOTOPIC。

       341    RPL_INVITING
              "<channel> <nick>"
        
       341    RPL_INVITING
              "<channel> <nick>"
        

- Returned by the server to indicate that the attempted INVITE message was successful and is being passed onto the end client.

- 由服务器返回,以指示尝试的INVITE消息已成功并正在传递到最终客户端。

342 RPL_SUMMONING "<user> :Summoning user to IRC"

342 RPL_召唤“<user>:召唤用户到IRC”

- Returned by a server answering a SUMMON message to indicate that it is summoning that user.

- 由响应召唤消息的服务器返回,以指示它正在召唤该用户。

       346    RPL_INVITELIST
              "<channel> <invitemask>"
       347    RPL_ENDOFINVITELIST
              "<channel> :End of channel invite list"
        
       346    RPL_INVITELIST
              "<channel> <invitemask>"
       347    RPL_ENDOFINVITELIST
              "<channel> :End of channel invite list"
        

- When listing the 'invitations masks' for a given channel, a server is required to send the list back using the RPL_INVITELIST and RPL_ENDOFINVITELIST messages. A separate RPL_INVITELIST is sent for each active mask. After the masks have been listed (or if none present) a RPL_ENDOFINVITELIST MUST be sent.

- 列出给定频道的“邀请掩码”时,服务器需要使用RPL_INVITELIST和RPL_ENDOFINVITELIST消息将列表发回。为每个活动掩码发送单独的RPL\U邀请列表。列出屏蔽后(或如果不存在),必须发送RPL_ENDOFINVITELIST。

       348    RPL_EXCEPTLIST
              "<channel> <exceptionmask>"
       349    RPL_ENDOFEXCEPTLIST
              "<channel> :End of channel exception list"
        
       348    RPL_EXCEPTLIST
              "<channel> <exceptionmask>"
       349    RPL_ENDOFEXCEPTLIST
              "<channel> :End of channel exception list"
        

- When listing the 'exception masks' for a given channel, a server is required to send the list back using the RPL_EXCEPTLIST and RPL_ENDOFEXCEPTLIST messages. A separate RPL_EXCEPTLIST is sent for each active mask. After the masks have been listed (or if none present) a RPL_ENDOFEXCEPTLIST MUST be sent.

- 列出给定通道的“异常掩码”时,服务器需要使用RPL_EXCEPTLIST和RPL_ENDOFEXCEPTLIST消息将列表发回。为每个活动掩码发送单独的RPL_EXCEPTLIST。列出屏蔽后(或如果不存在),必须发送RPL_ENDOFEXCEPTLIST。

       351    RPL_VERSION
              "<version>.<debuglevel> <server> :<comments>"
        
       351    RPL_VERSION
              "<version>.<debuglevel> <server> :<comments>"
        

- Reply by the server showing its version details. The <version> is the version of the software being used (including any patchlevel revisions) and the <debuglevel> is used to indicate if the server is running in "debug mode".

- 服务器回复,显示其版本详细信息。<version>是正在使用的软件版本(包括任何补丁级别的修订版),而<debuglevel>用于指示服务器是否在“调试模式”下运行。

The "comments" field may contain any comments about the version or further version details.

“注释”字段可能包含有关版本或进一步版本详细信息的任何注释。

       352    RPL_WHOREPLY
              "<channel> <user> <host> <server> <nick>
              ( "H" / "G" > ["*"] [ ( "@" / "+" ) ]
              :<hopcount> <real name>"
        
       352    RPL_WHOREPLY
              "<channel> <user> <host> <server> <nick>
              ( "H" / "G" > ["*"] [ ( "@" / "+" ) ]
              :<hopcount> <real name>"
        

315 RPL_ENDOFWHO "<name> :End of WHO list"

315 RPL_ENDOFWHO“<name>:世界卫生组织名单结束”

- The RPL_WHOREPLY and RPL_ENDOFWHO pair are used to answer a WHO message. The RPL_WHOREPLY is only sent if there is an appropriate match to the WHO query. If there is a list of parameters supplied with a WHO message, a RPL_ENDOFWHO MUST be sent after processing each list item with <name> being the item.

- RPL_WHOREPLY和RPL_ENDOFWHO对用于回答世卫组织的信息。只有在与WHO查询有适当匹配的情况下,才会发送RPL_WHOREPLY。如果世卫组织信息中提供了参数列表,则必须在处理每个列表项后发送RPL_ENDOFWHO,其中<name>为该项。

       353    RPL_NAMREPLY
              "( "=" / "*" / "@" ) <channel>
               :[ "@" / "+" ] <nick> *( " " [ "@" / "+" ] <nick> )
         - "@" is used for secret channels, "*" for private
           channels, and "=" for others (public channels).
        
       353    RPL_NAMREPLY
              "( "=" / "*" / "@" ) <channel>
               :[ "@" / "+" ] <nick> *( " " [ "@" / "+" ] <nick> )
         - "@" is used for secret channels, "*" for private
           channels, and "=" for others (public channels).
        

366 RPL_ENDOFNAMES "<channel> :End of NAMES list"

366 RPL_ENDOFNAMES“<channel>:名称列表末尾”

- To reply to a NAMES message, a reply pair consisting of RPL_NAMREPLY and RPL_ENDOFNAMES is sent by the server back to the client. If there is no channel found as in the query, then only RPL_ENDOFNAMES is

- 要回复NAMES消息,服务器会将包含RPL_NAMREPLY和RPL_ENDOFNAMES的回复对发送回客户端。如果在查询中没有找到通道,则只显示RPL_ENDOFNAMES

returned. The exception to this is when a NAMES message is sent with no parameters and all visible channels and contents are sent back in a series of RPL_NAMEREPLY messages with a RPL_ENDOFNAMES to mark the end.

返回。例外情况是,如果发送的NAMES消息没有参数,并且所有可见的通道和内容都以一系列RPL_NAMEREPLY消息的形式发送回来,并以RPL_ENDOFNAMES标记结束。

       364    RPL_LINKS
              "<mask> <server> :<hopcount> <server info>"
       365    RPL_ENDOFLINKS
              "<mask> :End of LINKS list"
        
       364    RPL_LINKS
              "<mask> <server> :<hopcount> <server info>"
       365    RPL_ENDOFLINKS
              "<mask> :End of LINKS list"
        

- In replying to the LINKS message, a server MUST send replies back using the RPL_LINKS numeric and mark the end of the list using an RPL_ENDOFLINKS reply.

- 在回复LINKS消息时,服务器必须使用RPL_LINKS数字发送回复,并使用RPL_ENDOFLINKS回复标记列表的结尾。

       367    RPL_BANLIST
              "<channel> <banmask>"
       368    RPL_ENDOFBANLIST
              "<channel> :End of channel ban list"
        
       367    RPL_BANLIST
              "<channel> <banmask>"
       368    RPL_ENDOFBANLIST
              "<channel> :End of channel ban list"
        

- When listing the active 'bans' for a given channel, a server is required to send the list back using the RPL_BANLIST and RPL_ENDOFBANLIST messages. A separate RPL_BANLIST is sent for each active banmask. After the banmasks have been listed (or if none present) a RPL_ENDOFBANLIST MUST be sent.

- 列出给定通道的活动“禁止”时,服务器需要使用RPL_BANLIST和RPL_ENDOFBANLIST消息将列表发送回。为每个活动的banmask发送单独的RPL_BANLIST。列出屏蔽后(或如果不存在),必须发送RPL_ENDOFBANLIST。

371 RPL_INFO ":<string>" 374 RPL_ENDOFINFO ":End of INFO list"

371 RPL_信息“:<string>“374 RPL_ENDOFINFO”:信息列表结束

- A server responding to an INFO message is required to send all its 'info' in a series of RPL_INFO messages with a RPL_ENDOFINFO reply to indicate the end of the replies.

- 响应INFO消息的服务器需要发送一系列RPL_INFO消息中的所有“INFO”,并使用RPL_ENDOFINFO回复来指示回复的结束。

       375    RPL_MOTDSTART
              ":- <server> Message of the day - "
       372    RPL_MOTD
              ":- <text>"
       376    RPL_ENDOFMOTD
              ":End of MOTD command"
        
       375    RPL_MOTDSTART
              ":- <server> Message of the day - "
       372    RPL_MOTD
              ":- <text>"
       376    RPL_ENDOFMOTD
              ":End of MOTD command"
        

- When responding to the MOTD message and the MOTD file is found, the file is displayed line by line, with each line no longer than 80 characters, using

- 当响应MOTD消息并找到MOTD文件时,文件逐行显示,每行长度不超过80个字符,使用

RPL_MOTD format replies. These MUST be surrounded by a RPL_MOTDSTART (before the RPL_MOTDs) and an RPL_ENDOFMOTD (after).

RPL_MOTD格式回复。这些必须由RPL_MOTDSTART(在RPL_MOTDs之前)和RPL_ENDOFMOTD(在RPL_MOTDs之后)包围。

381 RPL_YOUREOPER ":You are now an IRC operator"

381 RPL_YOUREOPER:“您现在是IRC操作员”

- RPL_YOUREOPER is sent back to a client which has just successfully issued an OPER message and gained operator status.

- RPL_YOUREOPER被发送回刚刚成功发出OPER消息并获得操作员状态的客户端。

382 RPL_REHASHING "<config file> :Rehashing"

382 RPL_重新灰化“<config file>:重新灰化”

- If the REHASH option is used and an operator sends a REHASH message, an RPL_REHASHING is sent back to the operator.

- 如果使用REHASH选项,并且操作员发送REHASH消息,则RPL_REHASHING将发送回操作员。

383 RPL_YOURESERVICE "You are service <servicename>"

383 RPL_YOURESERVICE“您是服务<servicename>”

- Sent by the server to a service upon successful registration.

- 成功注册后由服务器发送到服务。

       391    RPL_TIME
              "<server> :<string showing server's local time>"
        
       391    RPL_TIME
              "<server> :<string showing server's local time>"
        

- When replying to the TIME message, a server MUST send the reply using the RPL_TIME format above. The string showing the time need only contain the correct day and time there. There is no further requirement for the time string.

- 当回复时间消息时,服务器必须使用上面的RPL_时间格式发送回复。显示时间的字符串只需包含正确的日期和时间。对时间字符串没有进一步的要求。

       392    RPL_USERSSTART
              ":UserID   Terminal  Host"
       393    RPL_USERS
              ":<username> <ttyline> <hostname>"
       394    RPL_ENDOFUSERS
              ":End of users"
       395    RPL_NOUSERS
              ":Nobody logged in"
        
       392    RPL_USERSSTART
              ":UserID   Terminal  Host"
       393    RPL_USERS
              ":<username> <ttyline> <hostname>"
       394    RPL_ENDOFUSERS
              ":End of users"
       395    RPL_NOUSERS
              ":Nobody logged in"
        

- If the USERS message is handled by a server, the replies RPL_USERSTART, RPL_USERS, RPL_ENDOFUSERS and RPL_NOUSERS are used. RPL_USERSSTART MUST be sent first, following by either a sequence of RPL_USERS or a single RPL_NOUSER. Following this is RPL_ENDOFUSERS.

- 如果用户消息由服务器处理,则使用回复RPL_USERSTART、RPL_USERS、RPL_ENDOFUSERS和RPL_nouser。必须首先发送RPL_用户启动,然后是一系列RPL_用户或单个RPL_用户。下面是RPL_内融合器。

       200    RPL_TRACELINK
              "Link <version & debug level> <destination>
               <next server> V<protocol version>
               <link uptime in seconds> <backstream sendq>
               <upstream sendq>"
       201    RPL_TRACECONNECTING
              "Try. <class> <server>"
       202    RPL_TRACEHANDSHAKE
              "H.S. <class> <server>"
       203    RPL_TRACEUNKNOWN
              "???? <class> [<client IP address in dot form>]"
       204    RPL_TRACEOPERATOR
              "Oper <class> <nick>"
       205    RPL_TRACEUSER
              "User <class> <nick>"
       206    RPL_TRACESERVER
              "Serv <class> <int>S <int>C <server>
               <nick!user|*!*>@<host|server> V<protocol version>"
       207    RPL_TRACESERVICE
              "Service <class> <name> <type> <active type>"
       208    RPL_TRACENEWTYPE
              "<newtype> 0 <client name>"
       209    RPL_TRACECLASS
              "Class <class> <count>"
       210    RPL_TRACERECONNECT
              Unused.
       261    RPL_TRACELOG
              "File <logfile> <debug level>"
       262    RPL_TRACEEND
              "<server name> <version & debug level> :End of TRACE"
        
       200    RPL_TRACELINK
              "Link <version & debug level> <destination>
               <next server> V<protocol version>
               <link uptime in seconds> <backstream sendq>
               <upstream sendq>"
       201    RPL_TRACECONNECTING
              "Try. <class> <server>"
       202    RPL_TRACEHANDSHAKE
              "H.S. <class> <server>"
       203    RPL_TRACEUNKNOWN
              "???? <class> [<client IP address in dot form>]"
       204    RPL_TRACEOPERATOR
              "Oper <class> <nick>"
       205    RPL_TRACEUSER
              "User <class> <nick>"
       206    RPL_TRACESERVER
              "Serv <class> <int>S <int>C <server>
               <nick!user|*!*>@<host|server> V<protocol version>"
       207    RPL_TRACESERVICE
              "Service <class> <name> <type> <active type>"
       208    RPL_TRACENEWTYPE
              "<newtype> 0 <client name>"
       209    RPL_TRACECLASS
              "Class <class> <count>"
       210    RPL_TRACERECONNECT
              Unused.
       261    RPL_TRACELOG
              "File <logfile> <debug level>"
       262    RPL_TRACEEND
              "<server name> <version & debug level> :End of TRACE"
        

- The RPL_TRACE* are all returned by the server in response to the TRACE message. How many are returned is dependent on the TRACE message and whether it was sent by an operator or not. There is no predefined order for which occurs first. Replies RPL_TRACEUNKNOWN, RPL_TRACECONNECTING and RPL_TRACEHANDSHAKE are all used for connections which have not been fully established and are either unknown, still attempting to connect or in the process of completing the 'server handshake'. RPL_TRACELINK is sent by any server which handles a TRACE message and has to pass it on to another server. The list of RPL_TRACELINKs sent in response to a TRACE command traversing the IRC network should reflect the actual connectivity of the servers themselves along that path.

- RPL_跟踪*都由服务器返回以响应跟踪消息。返回的数量取决于跟踪消息以及它是否由操作员发送。没有先出现的预定义顺序。回复RPL_TRACEUNKNOWN、RPL_TraceConnection和RPL_TRACEHANDSHAKE均用于尚未完全建立的连接,这些连接未知、仍在尝试连接或正在完成“服务器握手”。RPL_TRACELINK由处理跟踪消息的任何服务器发送,并且必须将其传递到另一台服务器。为响应穿越IRC网络的跟踪命令而发送的RPL_跟踪线列表应反映服务器本身沿该路径的实际连接。

RPL_TRACENEWTYPE is to be used for any connection which does not fit in the other categories but is being displayed anyway. RPL_TRACEEND is sent to indicate the end of the list.

RPL_TRACENEWTYPE用于任何不适合其他类别但仍在显示的连接。发送RPL_TRACEEND以指示列表结束。

       211    RPL_STATSLINKINFO
              "<linkname> <sendq> <sent messages>
               <sent Kbytes> <received messages>
               <received Kbytes> <time open>"
        
       211    RPL_STATSLINKINFO
              "<linkname> <sendq> <sent messages>
               <sent Kbytes> <received messages>
               <received Kbytes> <time open>"
        

- reports statistics on a connection. <linkname> identifies the particular connection, <sendq> is the amount of data that is queued and waiting to be sent <sent messages> the number of messages sent, and <sent Kbytes> the amount of data sent, in Kbytes. <received messages> and <received Kbytes> are the equivalent of <sent messages> and <sent Kbytes> for received data, respectively. <time open> indicates how long ago the connection was opened, in seconds.

- 报告连接的统计信息<linkname>标识特定连接,<sendq>是排队等待发送的数据量<sent messages>发送的消息数,<sent Kbytes>发送的数据量,单位为Kbytes<接收到的消息>和<received Kbytes>分别相当于接收到的数据的<sent messages>和<sent Kbytes><time open>表示连接打开的时间,以秒为单位。

       212    RPL_STATSCOMMANDS
              "<command> <count> <byte count> <remote count>"
        
       212    RPL_STATSCOMMANDS
              "<command> <count> <byte count> <remote count>"
        

- reports statistics on commands usage.

- 报告命令使用情况的统计信息。

219 RPL_ENDOFSTATS "<stats letter> :End of STATS report"

219 RPL_ENDOFSTATS“<stats letter>:统计报告结束”

242 RPL_STATSUPTIME ":Server Up %d days %d:%02d:%02d"

242 RPL_STATSUPTIME“:服务器启动%d天%d:%02d:%02d”

- reports the server uptime.

- 报告服务器正常运行时间。

       243    RPL_STATSOLINE
              "O <hostmask> * <name>"
        
       243    RPL_STATSOLINE
              "O <hostmask> * <name>"
        

- reports the allowed hosts from where user may become IRC operators.

- 报告用户可能成为IRC操作员的允许主机。

221 RPL_UMODEIS "<user mode string>"

221 RPL_UMODEIS“<user mode string>”

- To answer a query about a client's own mode, RPL_UMODEIS is sent back.

- 要回答有关客户端自身模式的查询,将返回RPL_UMODEIS。

       234    RPL_SERVLIST
              "<name> <server> <mask> <type> <hopcount> <info>"
        
       234    RPL_SERVLIST
              "<name> <server> <mask> <type> <hopcount> <info>"
        
       235    RPL_SERVLISTEND
              "<mask> <type> :End of service listing"
        
       235    RPL_SERVLISTEND
              "<mask> <type> :End of service listing"
        

- When listing services in reply to a SERVLIST message, a server is required to send the list back using the RPL_SERVLIST and RPL_SERVLISTEND messages. A separate RPL_SERVLIST is sent for each service. After the services have been listed (or if none present) a RPL_SERVLISTEND MUST be sent.

- 当列出服务以回复SERVLIST消息时,服务器需要使用RPL_SERVLIST和RPL_SERVLISTEND消息将列表发送回。为每个服务发送一个单独的RPL_服务列表。列出服务后(或如果不存在),必须发送RPL_SERVLISTEND。

       251    RPL_LUSERCLIENT
              ":There are <integer> users and <integer>
               services on <integer> servers"
       252    RPL_LUSEROP
              "<integer> :operator(s) online"
       253    RPL_LUSERUNKNOWN
              "<integer> :unknown connection(s)"
       254    RPL_LUSERCHANNELS
              "<integer> :channels formed"
       255    RPL_LUSERME
              ":I have <integer> clients and <integer>
                servers"
        
       251    RPL_LUSERCLIENT
              ":There are <integer> users and <integer>
               services on <integer> servers"
       252    RPL_LUSEROP
              "<integer> :operator(s) online"
       253    RPL_LUSERUNKNOWN
              "<integer> :unknown connection(s)"
       254    RPL_LUSERCHANNELS
              "<integer> :channels formed"
       255    RPL_LUSERME
              ":I have <integer> clients and <integer>
                servers"
        

- In processing an LUSERS message, the server sends a set of replies from RPL_LUSERCLIENT, RPL_LUSEROP, RPL_USERUNKNOWN, RPL_LUSERCHANNELS and RPL_LUSERME. When replying, a server MUST send back RPL_LUSERCLIENT and RPL_LUSERME. The other replies are only sent back if a non-zero count is found for them.

- 在处理LUSERS消息时,服务器从RPL_LUSERCLIENT、RPL_LUSEROP、RPL_USERUNKNOWN、RPL_LUSERCHANNELS和RPL_LUSERME发送一组回复。应答时,服务器必须发回RPL_LUSERCLIENT和RPL_LUSERME。其他回复只有在找到非零计数时才会被发回。

       256    RPL_ADMINME
              "<server> :Administrative info"
       257    RPL_ADMINLOC1
              ":<admin info>"
       258    RPL_ADMINLOC2
              ":<admin info>"
       259    RPL_ADMINEMAIL
              ":<admin info>"
        
       256    RPL_ADMINME
              "<server> :Administrative info"
       257    RPL_ADMINLOC1
              ":<admin info>"
       258    RPL_ADMINLOC2
              ":<admin info>"
       259    RPL_ADMINEMAIL
              ":<admin info>"
        

- When replying to an ADMIN message, a server is expected to use replies RPL_ADMINME through to RPL_ADMINEMAIL and provide a text message with each. For RPL_ADMINLOC1 a description of what city, state and country the server is in is expected, followed by details of the institution (RPL_ADMINLOC2)

- 在回复管理员邮件时,服务器应使用RPL_ADMINME至RPL_ADMINEMAIL的回复,并为每个回复提供文本消息。对于RPL_ADMINLOC1,需要描述服务器所在的城市、州和国家,然后是机构的详细信息(RPL_ADMINLOC2)

and finally the administrative contact for the server (an email address here is REQUIRED) in RPL_ADMINEMAIL.

最后是RPL_ADMINEMAIL中服务器的管理联系人(此处需要电子邮件地址)。

263 RPL_TRYAGAIN "<command> :Please wait a while and try again."

263 RPL_TRYAGAIN“<command>:请稍等片刻,然后重试。”

- When a server drops a command without processing it, it MUST use the reply RPL_TRYAGAIN to inform the originating client.

- 当服务器在不处理命令的情况下丢弃命令时,它必须使用reply RPL_TRYAGAIN通知发起客户端。

5.2 Error Replies
5.2 错误回复

Error replies are found in the range from 400 to 599.

错误回复的范围从400到599。

       401    ERR_NOSUCHNICK
              "<nickname> :No such nick/channel"
        
       401    ERR_NOSUCHNICK
              "<nickname> :No such nick/channel"
        

- Used to indicate the nickname parameter supplied to a command is currently unused.

- 用于指示提供给命令的昵称参数当前未使用。

402 ERR_NOSUCHSERVER "<server name> :No such server"

402 ERR_NOSUCHSERVER“<server name>:没有这样的服务器”

- Used to indicate the server name given currently does not exist.

- 用于指示当前给定的服务器名称不存在。

403 ERR_NOSUCHCHANNEL "<channel name> :No such channel"

403 ERR_nosuch频道“<channel name>:没有这样的频道”

- Used to indicate the given channel name is invalid.

- 用于指示给定的通道名称无效。

404 ERR_CANNOTSENDTOCHAN "<channel name> :Cannot send to channel"

404 ERR_CANNOTSENDTOCHAN“<channel name>:无法发送到频道”

- Sent to a user who is either (a) not on a channel which is mode +n or (b) not a chanop (or mode +v) on a channel which has mode +m set or where the user is banned and is trying to send a PRIVMSG message to that channel.

- 发送给以下用户:(a)不在模式+n的频道上,或(b)不在模式+m设置的频道上,或用户被禁止并试图向该频道发送PRIVMSG消息的频道上(或模式+v)。

405 ERR_TOOMANYCHANNELS "<channel name> :You have joined too many channels"

405 ERR_ToomanyChannel“<channel name>:您加入的频道太多”

- Sent to a user when they have joined the maximum number of allowed channels and they try to join another channel.

- 当用户加入了允许的最大频道数并尝试加入另一个频道时发送给用户。

406 ERR_WASNOSUCHNICK "<nickname> :There was no such nickname"

406 ERR_WASNOSUCHNICK“<昵称>:没有这样的昵称”

- Returned by WHOWAS to indicate there is no history information for that nickname.

- WHOWAS返回,表示该昵称没有历史信息。

       407    ERR_TOOMANYTARGETS
              "<target> :<error code> recipients. <abort message>"
        
       407    ERR_TOOMANYTARGETS
              "<target> :<error code> recipients. <abort message>"
        

- Returned to a client which is attempting to send a PRIVMSG/NOTICE using the user@host destination format and for a user@host which has several occurrences.

- 返回给正在尝试使用发送PRIVMSG/通知的客户端user@host目标格式和user@host有好几次。

- Returned to a client which trying to send a PRIVMSG/NOTICE to too many recipients.

- 返回到试图向太多收件人发送PRIVMSG/通知的客户端。

- Returned to a client which is attempting to JOIN a safe channel using the shortname when there are more than one such channel.

- 当存在多个安全通道时,返回给试图使用shortname加入安全通道的客户端。

408 ERR_NOSUCHSERVICE "<service name> :No such service"

408 ERR_NOSUCHSERVICE“<service name>:无此类服务”

- Returned to a client which is attempting to send a SQUERY to a service which does not exist.

- 返回给试图向不存在的服务发送SQUERY的客户端。

409 ERR_NOORIGIN ":No origin specified"

409 ERR_NOORIGIN“:未指定原点”

- PING or PONG message missing the originator parameter.

- PING或PONG消息缺少发起人参数。

       411    ERR_NORECIPIENT
              ":No recipient given (<command>)"
       412    ERR_NOTEXTTOSEND
              ":No text to send"
       413    ERR_NOTOPLEVEL
              "<mask> :No toplevel domain specified"
       414    ERR_WILDTOPLEVEL
              "<mask> :Wildcard in toplevel domain"
       415    ERR_BADMASK
              "<mask> :Bad Server/host mask"
        
       411    ERR_NORECIPIENT
              ":No recipient given (<command>)"
       412    ERR_NOTEXTTOSEND
              ":No text to send"
       413    ERR_NOTOPLEVEL
              "<mask> :No toplevel domain specified"
       414    ERR_WILDTOPLEVEL
              "<mask> :Wildcard in toplevel domain"
       415    ERR_BADMASK
              "<mask> :Bad Server/host mask"
        

- 412 - 415 are returned by PRIVMSG to indicate that the message wasn't delivered for some reason. ERR_NOTOPLEVEL and ERR_WILDTOPLEVEL are errors that are returned when an invalid use of "PRIVMSG $<server>" or "PRIVMSG #<host>" is attempted.

- PRIVMSG返回412-415,以指示消息由于某种原因未被传递。ERR_NOTOPLEVEL和ERR_WILDTOPLEVEL是在尝试无效使用“PRIVMSG$<server>”或“PRIVMSG<host>”时返回的错误。

421 ERR_UNKNOWNCOMMAND "<command> :Unknown command"

421 ERR_Unknown命令“<command>:未知命令”

- Returned to a registered client to indicate that the command sent is unknown by the server.

- 返回到已注册的客户端,以指示服务器未知发送的命令。

422 ERR_NOMOTD ":MOTD File is missing"

422 ERR_NOMOTD“:MOTD文件丢失”

- Server's MOTD file could not be opened by the server.

- 服务器无法打开服务器的MOTD文件。

423 ERR_NOADMININFO "<server> :No administrative info available"

423 ERR_NOADMININFO“<server>:没有可用的管理信息”

- Returned by a server in response to an ADMIN message when there is an error in finding the appropriate information.

- 在查找适当信息时出错时,由服务器响应管理消息返回。

       424    ERR_FILEERROR
              ":File error doing <file op> on <file>"
        
       424    ERR_FILEERROR
              ":File error doing <file op> on <file>"
        

- Generic error message used to report a failed file operation during the processing of a message.

- 通用错误消息,用于在消息处理过程中报告失败的文件操作。

431 ERR_NONICKNAMEGIVEN ":No nickname given"

431 ERR_nonicknamagiven“:未给出昵称”

- Returned when a nickname parameter expected for a command and isn't found.

- 当命令需要昵称参数但未找到时返回。

432 ERR_ERRONEUSNICKNAME "<nick> :Erroneous nickname"

432错误的昵称“<nick>:错误的昵称”

- Returned after receiving a NICK message which contains characters which do not fall in the defined set. See section 2.3.1 for details on valid nicknames.

- 收到包含不属于定义集的字符的尼克消息后返回。有关有效昵称的详细信息,请参见第2.3.1节。

433 ERR_NICKNAMEINUSE "<nick> :Nickname is already in use"

433 ERR_昵称使用“<nick>:昵称已在使用”

- Returned when a NICK message is processed that results in an attempt to change to a currently existing nickname.

- 在处理导致尝试更改为当前现有昵称的NICK消息时返回。

       436    ERR_NICKCOLLISION
              "<nick> :Nickname collision KILL from <user>@<host>"
        
       436    ERR_NICKCOLLISION
              "<nick> :Nickname collision KILL from <user>@<host>"
        

- Returned by a server to a client when it detects a nickname collision (registered of a NICK that already exists by another server).

- 当服务器检测到昵称冲突(另一台服务器已经存在的昵称的注册)时,服务器返回给客户端。

       437    ERR_UNAVAILRESOURCE
              "<nick/channel> :Nick/channel is temporarily unavailable"
        
       437    ERR_UNAVAILRESOURCE
              "<nick/channel> :Nick/channel is temporarily unavailable"
        

- Returned by a server to a user trying to join a channel currently blocked by the channel delay mechanism.

- 服务器返回给试图加入当前被通道延迟机制阻止的通道的用户。

- Returned by a server to a user trying to change nickname when the desired nickname is blocked by the nick delay mechanism.

- 当所需昵称被尼克延迟机制阻止时,服务器返回给试图更改昵称的用户。

       441    ERR_USERNOTINCHANNEL
              "<nick> <channel> :They aren't on that channel"
        
       441    ERR_USERNOTINCHANNEL
              "<nick> <channel> :They aren't on that channel"
        

- Returned by the server to indicate that the target user of the command is not on the given channel.

- 由服务器返回,以指示命令的目标用户不在给定通道上。

442 ERR_NOTONCHANNEL "<channel> :You're not on that channel"

442错误:你不在那个频道上

- Returned by the server whenever a client tries to perform a channel affecting command for which the client isn't a member.

- 每当客户端尝试执行客户端不是其成员的影响通道的命令时,服务器返回。

       443    ERR_USERONCHANNEL
              "<user> <channel> :is already on channel"
        
       443    ERR_USERONCHANNEL
              "<user> <channel> :is already on channel"
        

- Returned when a client tries to invite a user to a channel they are already on.

- 当客户端尝试邀请用户访问其已使用的频道时返回。

444 ERR_NOLOGIN "<user> :User not logged in"

444错误登录“<user>:用户未登录”

- Returned by the summon after a SUMMON command for a user was unable to be performed since they were not logged in.

- 由于用户未登录,无法执行用户的召唤命令后,召唤返回。

445 ERR_SUMMONDISABLED ":SUMMON has been disabled"

445 ERR_召唤已禁用“:召唤已禁用”

- Returned as a response to the SUMMON command. MUST be returned by any server which doesn't implement it.

- 作为对召唤命令的响应返回。必须由未实现它的任何服务器返回。

446 ERR_USERSDISABLED ":USERS has been disabled"

446 ERR_USERSDISABLED“:用户已被禁用”

- Returned as a response to the USERS command. MUST be returned by any server which does not implement it.

- 作为对用户命令的响应返回。必须由未实现它的任何服务器返回。

451 ERR_NOTREGISTERED ":You have not registered"

451 ERR_notregisted“:您尚未注册”

- Returned by the server to indicate that the client MUST be registered before the server will allow it to be parsed in detail.

- 由服务器返回,指示必须先注册客户端,服务器才能允许对其进行详细分析。

461 ERR_NEEDMOREPARAMS "<command> :Not enough parameters"

461 ERR_NEEDMOREPARAMS“<command>:参数不足”

- Returned by the server by numerous commands to indicate to the client that it didn't supply enough parameters.

- 服务器通过大量命令返回,以指示客户端没有提供足够的参数。

462 ERR_ALREADYREGISTRED ":Unauthorized command (already registered)"

462 ERR_ALREADYREGISTRED”:未经授权的命令(已注册)

- Returned by the server to any link which tries to change part of the registered details (such as password or user details from second USER message).

- 由服务器返回到试图更改部分已注册详细信息(如第二条用户消息中的密码或用户详细信息)的任何链接。

463 ERR_NOPERMFORHOST ":Your host isn't among the privileged"

463 ERR_NOPERMFORHOST“:您的主机不在特权范围内”

- Returned to a client which attempts to register with a server which does not been setup to allow connections from the host the attempted connection is tried.

- 返回到尝试向服务器注册的客户端,该服务器未设置为允许从主机进行连接尝试连接。

464 ERR_PASSWDMISMATCH ":Password incorrect"

464 ERR_PASSWDMISMATCH“:密码不正确”

- Returned to indicate a failed attempt at registering a connection for which a password was required and was either not given or incorrect.

- 返回以指示注册需要密码且未提供密码或密码不正确的连接的尝试失败。

465 ERR_YOUREBANNEDCREEP ":You are banned from this server"

465 ERR_YOUREBANNEDCREEP“:您被禁止使用此服务器”

- Returned after an attempt to connect and register yourself with a server which has been setup to explicitly deny connections to you.

- 尝试连接并向已设置为显式拒绝与您连接的服务器注册后返回。

466 ERR_YOUWILLBEBANNED

你会被禁止的

- Sent by a server to a user to inform that access to the server will soon be denied.

- 由服务器发送给用户,通知对服务器的访问将很快被拒绝。

       467    ERR_KEYSET
              "<channel> :Channel key already set"
       471    ERR_CHANNELISFULL
              "<channel> :Cannot join channel (+l)"
       472    ERR_UNKNOWNMODE
              "<char> :is unknown mode char to me for <channel>"
       473    ERR_INVITEONLYCHAN
              "<channel> :Cannot join channel (+i)"
       474    ERR_BANNEDFROMCHAN
              "<channel> :Cannot join channel (+b)"
       475    ERR_BADCHANNELKEY
              "<channel> :Cannot join channel (+k)"
       476    ERR_BADCHANMASK
              "<channel> :Bad Channel Mask"
       477    ERR_NOCHANMODES
              "<channel> :Channel doesn't support modes"
       478    ERR_BANLISTFULL
              "<channel> <char> :Channel list is full"
        
       467    ERR_KEYSET
              "<channel> :Channel key already set"
       471    ERR_CHANNELISFULL
              "<channel> :Cannot join channel (+l)"
       472    ERR_UNKNOWNMODE
              "<char> :is unknown mode char to me for <channel>"
       473    ERR_INVITEONLYCHAN
              "<channel> :Cannot join channel (+i)"
       474    ERR_BANNEDFROMCHAN
              "<channel> :Cannot join channel (+b)"
       475    ERR_BADCHANNELKEY
              "<channel> :Cannot join channel (+k)"
       476    ERR_BADCHANMASK
              "<channel> :Bad Channel Mask"
       477    ERR_NOCHANMODES
              "<channel> :Channel doesn't support modes"
       478    ERR_BANLISTFULL
              "<channel> <char> :Channel list is full"
        

481 ERR_NOPRIVILEGES ":Permission Denied- You're not an IRC operator"

481 ERR_NOPRIVILEGES“:权限被拒绝-您不是IRC操作员”

- Any command requiring operator privileges to operate MUST return this error to indicate the attempt was unsuccessful.

- 任何需要操作员权限才能操作的命令都必须返回此错误,以表明尝试失败。

482 ERR_CHANOPRIVSNEEDED "<channel> :You're not channel operator"

482错误频道需要“<channel>:您不是频道操作员”

- Any command requiring 'chanop' privileges (such as MODE messages) MUST return this error if the client making the attempt is not a chanop on the specified channel.

- 如果进行尝试的客户端不是指定通道上的chanop,则任何需要“chanop”权限(如模式消息)的命令都必须返回此错误。

483 ERR_CANTKILLSERVER ":You can't kill a server!"

483 ERR_CANTKILLSERVER“:你不能杀死服务器!”

- Any attempts to use the KILL command on a server are to be refused and this error returned directly to the client.

- 将拒绝在服务器上使用KILL命令的任何尝试,并将此错误直接返回给客户端。

484 ERR_RESTRICTED ":Your connection is restricted!"

484 ERR_RESTRICTED:您的连接受到限制

- Sent by the server to a user upon connection to indicate the restricted nature of the connection (user mode "+r").

- 在连接时由服务器发送给用户,以指示连接的受限性质(用户模式“+r”)。

485 ERR_UNIQOPPRIVSNEEDED ":You're not the original channel operator"

485 ERR_uniqoprivsneed“:您不是原始频道运营商”

- Any MODE requiring "channel creator" privileges MUST return this error if the client making the attempt is not a chanop on the specified channel.

- 如果进行尝试的客户端不是指定通道上的chanop,则任何需要“通道创建者”权限的模式都必须返回此错误。

491 ERR_NOOPERHOST ":No O-lines for your host"

491 ERR_NOOPERHOST“:主机无O型线”

- If a client sends an OPER message and the server has not been configured to allow connections from the client's host as an operator, this error MUST be returned.

- 如果客户端发送OPER消息,而服务器尚未配置为允许以操作员身份从客户端主机进行连接,则必须返回此错误。

501 ERR_UMODEUNKNOWNFLAG ":Unknown MODE flag"

501 ERR_UMODEUNKNOWNFLAG“:未知模式标志”

- Returned by the server to indicate that a MODE message was sent with a nickname parameter and that the a mode flag sent was not recognized.

- 由服务器返回,以指示发送了带有昵称参数的模式消息,并且未识别发送的模式标志。

502 ERR_USERSDONTMATCH ":Cannot change mode for other users"

502 ERR_USERSDONTMATCH“:无法更改其他用户的模式”

- Error sent to any user trying to view or change the user mode for a user other than themselves.

- 发送给任何试图查看或更改用户模式的用户(而非他们自己)的错误。

5.3 Reserved numerics
5.3 保留数字

These numerics are not described above since they fall into one of the following categories:

以上未对这些数字进行描述,因为它们属于以下类别之一:

1. no longer in use;

1. 不再使用;

2. reserved for future planned use;

2. 保留供将来计划使用;

3. in current use but are part of a non-generic 'feature' of the current IRC server.

3. 但属于当前IRC服务器的非通用“功能”的一部分。

231 RPL_SERVICEINFO 232 RPL_ENDOFSERVICES 233 RPL_SERVICE 300 RPL_NONE 316 RPL_WHOISCHANOP 361 RPL_KILLDONE 362 RPL_CLOSING 363 RPL_CLOSEEND 373 RPL_INFOSTART 384 RPL_MYPORTIS

231 RPL_服务信息232 RPL_结束服务233 RPL_服务300 RPL_无316 RPL_谁参与361 RPL_结束362 RPL_结束363 RPL_结束373 RPL_信息开始384 RPL_我的端口

213 RPL_STATSCLINE 214 RPL_STATSNLINE 215 RPL_STATSILINE 216 RPL_STATSKLINE 217 RPL_STATSQLINE 218 RPL_STATSYLINE 240 RPL_STATSVLINE 241 RPL_STATSLLINE 244 RPL_STATSHLINE 244 RPL_STATSSLINE 246 RPL_STATSPING 247 RPL_STATSBLINE 250 RPL_STATSDLINE

213 RPL\U STATSCLINE 214 RPL\U STATSNLINE 215 RPL\U STATSCLINE 216 RPL\U STATSCLINE 217 RPL\U STATSQLINE 218 RPL\U STATSYLINE 240 RPL\U STATSVLINE 241 RPL\U STATSCLINE 244 RPL\U STATSCLINE 246 RPL\U STATSCLINE 247 RPL\U STATSBLINE 250 RPL\U STATSDLINE

492 ERR_NOSERVICEHOST

492错误服务主机

6. Current implementations
6. 当前实现

The IRC software, version 2.10 is the only complete implementation of the IRC protocol (client and server). Because of the small amount of changes in the client protocol since the publication of RFC 1459 [IRC], implementations that follow it are likely to be compliant with this protocol or to require a small amount of changes to reach compliance.

IRC软件版本2.10是IRC协议(客户端和服务器)的唯一完整实现。由于自RFC 1459[IRC]发布以来,客户机协议中发生了少量更改,因此遵循该协议的实现很可能符合该协议,或者需要进行少量更改才能达到法规遵从性。

7. Current problems
7. 当前问题

There are a number of recognized problems with the IRC Client Protocol, and more generally with the IRC Server Protocol. In order to preserve backward compatibility with old clients, this protocol has almost not evolved since the publication of RFC 1459 [IRC].

IRC客户机协议和IRC服务器协议都存在许多公认的问题。为了保持与旧客户端的向后兼容性,自RFC1459[IRC]发布以来,该协议几乎没有发展。

7.1 Nicknames
7.1 绰号

The idea of the nickname on IRC is very convenient for users to use when talking to each other outside of a channel, but there is only a finite nickname space and being what they are, it's not uncommon for several people to want to use the same nick. If a nickname is chosen by two people using this protocol, either one will not succeed or both will removed by use of a server KILL (See Section 3.7.1).

IRC上昵称的概念非常方便用户在频道外相互交谈时使用,但昵称空间有限,因此,多人使用同一个昵称并不罕见。如果使用此协议的两个人选择了一个昵称,则其中一个不会成功,或者两个昵称都将通过使用服务器终止来删除(参见第3.7.1节)。

7.2 Limitation of wildcards
7.2 通配符的限制

There is no way to escape the escape character "\" (%x5C). While this isn't usually a problem, it makes it impossible to form a mask with a backslash character ("\") preceding a wildcard.

无法转义转义字符“\”(%x5C)。虽然这通常不是一个问题,但它使在通配符之前使用反斜杠字符(\)形成掩码变得不可能。

7.3 Security considerations
7.3 安全考虑

Security issues related to this protocol are discussed in the "IRC Server Protocol" [IRC-SERVER] as they are mostly an issue for the server side of the connection.

“IRC服务器协议”[IRC-Server]中讨论了与此协议相关的安全问题,因为它们主要是连接服务器端的问题。

8. Current support and availability
8. 当前支持和可用性
        Mailing lists for IRC related discussion:
          General discussion: ircd-users@irc.org
          Protocol development: ircd-dev@irc.org
        
        Mailing lists for IRC related discussion:
          General discussion: ircd-users@irc.org
          Protocol development: ircd-dev@irc.org
        
        Software implementations:
          ftp://ftp.irc.org/irc/server
          ftp://ftp.funet.fi/pub/unix/irc
          ftp://ftp.irc.org/irc/clients
        
        Software implementations:
          ftp://ftp.irc.org/irc/server
          ftp://ftp.funet.fi/pub/unix/irc
          ftp://ftp.irc.org/irc/clients
        

Newsgroup: alt.irc

新闻组:alt.irc

9. Acknowledgements
9. 致谢

Parts of this document were copied from the RFC 1459 [IRC] which first formally documented the IRC Protocol. It has also benefited from many rounds of review and comments. In particular, the following people have made significant contributions to this document:

本文件的部分内容是从RFC 1459[IRC]中复制的,该文件首先正式记录了IRC协议。它还受益于多轮审查和评论。特别是,以下人员对本文件做出了重大贡献:

Matthew Green, Michael Neumayer, Volker Paulsen, Kurt Roeckx, Vesa Ruokonen, Magnus Tjernstrom, Stefan Zehl.

马修·格林、迈克尔·纽梅尔、沃尔克·保尔森、库尔特·罗克斯、维萨·鲁科宁、马格纳斯·特杰恩斯特罗姆、斯特凡·泽尔。

10. References
10. 工具书类

[KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[关键词]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[ABNF] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November 1997.

[ABNF]Crocker,D.和P.Overell,“语法规范的扩充BNF:ABNF”,RFC 2234,1997年11月。

[HNAME] Braden, R., "Requirements for Internet Hosts -- Application and Support", STD 3, RFC 1123, October 1989.

[HNAME]Braden,R.,“互联网主机的要求——应用和支持”,STD 3,RFC 1123,1989年10月。

[IRC] Oikarinen, J. & D. Reed, "Internet Relay Chat Protocol", RFC 1459, May 1993.

[IRC]Oikarinen,J.和D.Reed,“互联网中继聊天协议”,RFC 1459,1993年5月。

[IRC-ARCH] Kalt, C., "Internet Relay Chat: Architecture", RFC 2810, April 2000.

[IRC-ARCH]Kalt,C.,“互联网中继聊天:架构”,RFC 28102000年4月。

[IRC-CHAN] Kalt, C., "Internet Relay Chat: Channel Management", RFC 2811, April 2000.

[IRC-CHAN]Kalt,C.,“互联网中继聊天:频道管理”,RFC 28112000年4月。

[IRC-SERVER] Kalt, C., "Internet Relay Chat: Server Protocol", RFC 2813, April 2000.

[IRC-SERVER]Kalt,C.,“互联网中继聊天:服务器协议”,RFC 28132000年4月。

11. Author's Address
11. 作者地址

Christophe Kalt 99 Teaneck Rd, Apt #117 Ridgefield Park, NJ 07660 USA

克里斯托夫·卡尔特美国新泽西州里奇菲尔德公园117号公寓蒂内克路99号,邮编:07660

   EMail: kalt@stealth.net
        
   EMail: kalt@stealth.net
        
12. Full Copyright Statement
12. 完整版权声明

Copyright (C) The Internet Society (2000). All Rights Reserved.

版权所有(C)互联网协会(2000年)。版权所有。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

本文件及其译本可复制并提供给他人,对其进行评论或解释或协助其实施的衍生作品可全部或部分编制、复制、出版和分发,不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文件本身,例如删除版权通知或对互联网协会或其他互联网组织的引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准过程中定义的版权程序,或根据需要将其翻译成英语以外的其他语言。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。