⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 protocol

📁 irc message protocol stack
💻
📖 第 1 页 / 共 5 页
字号:
   Most of the commands which result in a change of state information   (such as channel membership, channel mode, user status, etc) must be   sent to all servers by default, and this distribution may not be   changed by the client.3.3.3 Server-to-Server.   While most messages between servers are distributed to all 'other'   servers, this is only required for any message that affects either a   user, channel or server.  Since these are the basic items found inOikarinen & Reed                                               [Page 12]RFC 1459              Internet Relay Chat Protocol              May 1993   IRC, nearly all messages originating from a server are broadcast to   all other connected servers.4. Message details   On the following pages 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.   Where the reply ERR_NOSUCHSERVER is listed, it means that the   <server> parameter could not be found.  The server must not send any   other replies after this for that command.   The server to which a client is connected is required to parse the   complete message, returning any appropriate errors.  If the server   encounters a fatal error while parsing a message, an error must be   sent back to the client and the parsing terminated.  A fatal error   may be considered to be incorrect command, a destination which is   otherwise unknown to the server (server, nick or channel names fit   this category), not enough parameters or incorrect privileges.   If a full set of parameters is presented, then each must be checked   for validity and appropriate responses sent back to the client.  In   the case of messages which use parameter lists using the comma as an   item separator, a reply must be sent for each item.   In the examples below, some messages appear using the full format:   :Name COMMAND parameter list   Such examples represent a message from "Name" in transit between   servers, where it is essential to include the name of the original   sender of the message so remote servers may send back a reply along   the correct path.4.1 Connection Registration   The commands described here are used to register a connection with an   IRC server as either a user or a server as well as correctly   disconnect.   A "PASS" command is not required for either client or server   connection to be registered, but it must precede the server message   or the latter of the NICK/USER combination.  It is strongly   recommended that all server connections have a password in order to   give some level of security to the actual connections.  The   recommended order for a client to register is as follows:Oikarinen & Reed                                               [Page 13]RFC 1459              Internet Relay Chat Protocol              May 1993           1. Pass message           2. Nick message           3. User message4.1.1 Password message      Command: PASS   Parameters: <password>   The PASS command is used to set a 'connection password'.  The   password can and must be set before any attempt to register the   connection is made.  Currently this requires that clients send a PASS   command before sending the NICK/USER combination and servers *must*   send a PASS command before any SERVER command.  The password supplied   must match the one contained in the C/N lines (for servers) or I   lines (for clients).  It is possible to send multiple PASS commands   before registering but only the last one sent is used for   verification and it may not be changed once registered.  Numeric   Replies:           ERR_NEEDMOREPARAMS              ERR_ALREADYREGISTRED   Example:           PASS secretpasswordhere4.1.2 Nick message      Command: NICK   Parameters: <nickname> [ <hopcount> ]   NICK message is used to give user a nickname or change the previous   one.  The <hopcount> parameter is only used by servers to indicate   how far away a nick is from its home server.  A local connection has   a hopcount of 0.  If supplied by a client, it must be ignored.   If a NICK message arrives at a server which already knows about an   identical nickname for another client, a nickname collision occurs.   As a result of a nickname collision, all instances of the nickname   are removed from the server's database, and a KILL command is issued   to remove the nickname from all other server's database. If the NICK   message causing the collision was a nickname change, then the   original (old) nick must be removed as well.   If the server recieves an identical NICK from a client which is   directly connected, it may issue an ERR_NICKCOLLISION to the local   client, drop the NICK command, and not generate any kills.Oikarinen & Reed                                               [Page 14]RFC 1459              Internet Relay Chat Protocol              May 1993   Numeric Replies:           ERR_NONICKNAMEGIVEN             ERR_ERRONEUSNICKNAME           ERR_NICKNAMEINUSE               ERR_NICKCOLLISION   Example:   NICK Wiz                        ; Introducing new nick "Wiz".   :WiZ NICK Kilroy                ; WiZ changed his nickname to Kilroy.4.1.3 User message      Command: USER   Parameters: <username> <hostname> <servername> <realname>   The USER message is used at the beginning of connection to specify   the username, hostname, servername and realname of s new user.  It is   also used in communication between servers to indicate new user   arriving on IRC, since only after both USER and NICK have been   received from a client does a user become registered.   Between servers USER must to be prefixed with client's NICKname.   Note that hostname and servername are normally ignored by the IRC   server when the USER command comes from a directly connected client   (for security reasons), but they are used in server to server   communication.  This means that a NICK must always be sent to a   remote server when a new user is being introduced to the rest of the   network before the accompanying USER is sent.   It must be noted that realname parameter must be the last parameter,   because it may contain space characters and must be prefixed with a   colon (':') to make sure this is recognised as such.   Since it is easy for a client to lie about its username by relying   solely on the USER message, the use of an "Identity Server" is   recommended.  If the host which a user connects from has such a   server enabled the username is set to that as in the reply from the   "Identity Server".   Numeric Replies:           ERR_NEEDMOREPARAMS              ERR_ALREADYREGISTRED   Examples:   USER guest tolmoon tolsun :Ronnie ReaganOikarinen & Reed                                               [Page 15]RFC 1459              Internet Relay Chat Protocol              May 1993                                   ; User registering themselves with a                                   username of "guest" and real name                                   "Ronnie Reagan".   :testnick USER guest tolmoon tolsun :Ronnie Reagan                                   ; message between servers with the                                   nickname for which the USER command                                   belongs to4.1.4 Server message      Command: SERVER   Parameters: <servername> <hopcount> <info>   The server message is used to tell a server that the other end of a   new connection is a server. This message is also used to pass server   data over whole net.  When a new server is connected to net,   information about it be broadcast to the whole network.  <hopcount>   is used to give all servers some internal information on how far away   all servers are.  With a full server list, it would be possible to   construct a map of the entire server tree, but hostmasks prevent this   from being done.   The SERVER message must only be accepted from either (a) a connection   which is yet to be registered and is attempting to register as a   server, or (b) an existing connection to another server, in  which   case the SERVER message is introducing a new server behind that   server.   Most errors that occur with the receipt of a SERVER command result in   the connection being terminated by the destination host (target   SERVER).  Error replies are usually sent using the "ERROR" command   rather than the numeric since the ERROR command has several useful   properties which make it useful here.   If a SERVER message is parsed and attempts to introduce a server   which is already known to the receiving server, the connection from   which that message must be closed (following the correct procedures),   since a duplicate route to a server has formed and the acyclic nature   of the IRC tree broken.   Numeric Replies:           ERR_ALREADYREGISTRED   Example:Oikarinen & Reed                                               [Page 16]RFC 1459              Internet Relay Chat Protocol              May 1993SERVER test.oulu.fi 1 :[tolsun.oulu.fi] Experimental server                                ; New server test.oulu.fi introducing                                itself and attempting to register.  The                                name in []'s is the hostname for the                                host running test.oulu.fi.:tolsun.oulu.fi SERVER csd.bu.edu 5 :BU Central Server                                ; Server tolsun.oulu.fi is our uplink                                for csd.bu.edu which is 5 hops away.4.1.5 Oper      Command: OPER   Parameters: <user> <password>   OPER message is used by a normal user to obtain operator privileges.   The combination of <user> and <password> are required to gain   Operator privileges.   If the client sending the OPER command supplies the correct password   for the given user, the server then informs the rest of the network   of the new operator by issuing a "MODE +o" for the clients nickname.   The OPER message is client-server only.   Numeric Replies:           ERR_NEEDMOREPARAMS              RPL_YOUREOPER           ERR_NOOPERHOST                  ERR_PASSWDMISMATCH   Example:   OPER foo bar                    ; Attempt to register as an operator                                   using a username of "foo" and "bar" as                                   the password.4.1.6 Quit      Command: QUIT   Parameters: [<Quit message>]   A client session is ended with a quit message.  The server must close   the connection to a client which sends a QUIT message. If a "Quit   Message" is given, this will be sent instead of the default message,   the nickname.   When netsplits (disconnecting of two servers) occur, the quit messageOikarinen & Reed                                               [Page 17]RFC 1459              Internet Relay Chat Protocol              May 1993   is composed of the names of two servers involved, separated by a   space.  The first name is that of the server which is still connected   and the second name is that of the server that has become   disconnected.   If, for some other reason, a client connection is closed without  the   client  issuing  a  QUIT  command  (e.g.  client  dies and EOF occurs   on socket), the server is required to fill in the quit  message  with   some sort  of  message  reflecting the nature of the event which   caused it to happen.   Numeric Replies:           None.   Examples:   QUIT :Gone to have lunch        ; Preferred message format.4.1.7 Server quit message      Command: SQUIT   Parameters: <server> <comment>   The SQUIT message is needed to tell about quitting or dead servers.   If a server wishes to break the connection to another server it must   send a SQUIT message to the other server, using the the name of the   other server as the server parameter, which then closes its   connection to the quitting server.   This command is also available operators to help keep a network of   IRC servers connected in an orderly fashion.  Operators may also

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -