跳转到内容

互联网技术/IRC

来自维基教科书,开放的书籍,开放的世界

互联网中继聊天,通常缩写为 IRC,是一种聊天协议,是一种让多人通过输入文字信息互相交谈的方式,每个参与者都能看到其他参与者写的内容,就像他们在电话会议中一样。

IRC 技术

[编辑 | 编辑源代码]

从形式上来说,IRC 是一种实时基于文本的多用户通信协议规范和实现,它在网络上的用户之间中继消息。根据 Efnet.org,IRC 出现在 1988 年的某个时候。根据 IRChelp.org,IRC 的官方规范是在 1993 年以 RFC 格式编写的。规范 "RFC 1459: 互联网中继聊天协议" 是一个非常优秀的资源,既可以作为 IRC 协议的入门,也可以提供有关该协议的详细资料。如今,IRC 有着非常广泛的用户群体,任何人都可以在其中找到一个地方参与聊天。

IRC 架构中最大的单位是 IRC 网络。世界上可能有数百个 IRC 网络,每个网络都相互平行运行,彼此独立。登录到一个网络的客户端只能与同一网络上的其他客户端进行通信,不能与其他网络上的客户端进行通信。每个网络都由一个或多个 IRC 服务器组成。IRC 客户端是一个连接到给定 IRC 服务器的程序,以便该服务器将通信中继到同一网络上的其他客户端,但不一定是同一服务器上的客户端。

IRC 上的消息是作为块发送的。也就是说,其他 IRC 客户端不会看到一个人在打字和编辑时的操作。您创建消息块(通常只是一句话),并一次性传输该块,该块将被服务器接收,并根据寻址方式将消息传递给适当的客户端,或将消息中继到其他服务器,以便进一步传递或中继,等等。

连接到服务器后,其他客户端的寻址是通过 IRC 昵称实现的。昵称只是一个唯一的 ASCII 字符串,用于标识特定的客户端。虽然实现方式各不相同,但对昵称的限制通常规定它们只能由 a-z、A-Z、0-9、下划线和连字符组成。

IRC 上的另一种寻址方式,可以说是其定义特征之一,是 IRC 频道。IRC 频道通常与 CB 无线电(公民无线电)频道相比。在 CB 上,人们会说“收听”某个频道,而在 IRC 上,人们会说自己的客户端“加入”了某个频道。发送到该频道的所有通信都会被客户端“听到”或看到。另一方面,同一网络或同一服务器上的其他客户端,但不在同一频道上的客户端,将不会看到发送到该频道的任何消息。

虽然 IRC 本质上不是一个 P2P 协议,但 IRC 确实有一些扩展,支持在没有任何中继的情况下直接从客户端到客户端传输文本和文件。这些扩展被称为 DCC(直接客户端连接)和 CTCP(客户端到客户端协议)。对于 CTCP,像 mIRC 这样的客户端实现了诸如“ctcp 昵称 版本”或“ctcp 昵称 ping”之类的命令,以获取有关其他用户的一些有趣信息。

使用互联网中继聊天

[编辑 | 编辑源代码]

要使用互联网中继聊天,您需要执行以下操作

  1. 选择并安装 IRC 客户端。
  2. 找到讨论您感兴趣主题的 频道(类似于其他聊天环境中的房间)。
  3. 找到 服务器,该服务器是频道所在的服务器。您可以在项目的网站(例如维基教科书)上获得服务器和频道的地址。
  4. 使用客户端连接到 服务器,并使用您选择的昵称。
  5. 连接到 频道(房间)。


Clipboard

要做到
提供更多关于如何选择昵称及其使用和注册限制的信息。


注册您的昵称

[编辑 | 编辑源代码]

一些 IRC 网络提供通过服务机器人注册您的昵称的服务。这有时可以让您访问被禁止未注册用户访问的频道,而且在大多数情况下,它会保留您的昵称,以防止其他人使用它(它至少会将您标记为已登录用户,并将使用它但未登录的用户标记为未登录)。

提供此服务的机器人通常名为“NickServ”,有时也称为“AuthServ”,或者在大型网络上直接称为“Q”。当您发现这些机器人中的哪一个存在时,您可以通过输入以下内容获取更多信息

/msg [BOTNAME] help

这应该可以为您提供有关如何使用该服务的详细说明。

网络示例操作指南

[编辑 | 编辑源代码]

这个过程非常简单,一旦您选择了您想要注册的昵称(假设它尚未被其他人拥有)并选择了一个密码,请按照以下步骤操作

  • 如果您还没有这样做,请将您的昵称更改为要注册的昵称
/nick [NICKNAME]

例如

/nick JohnDoe
  • 向网络的 nickserv 服务发送一条包含您选择的密码和您的电子邮件地址的私信
/msg nickserv register [PASSWORD] [EMAIL]

例如

/msg nickserv register 1234abcd [email protected]
  • 向 nickserv 发送消息后,您应该很快收到回复,说明它收到了您的注册请求,并向您提供的地址发送了电子邮件。
An email containing nickname activation instructions has been sent to [email protected]
  • 要完成注册过程,您需要使用发送到您地址的注册代码向 nickserv 发送消息。
/msg NickServ VERIFY REGISTER JohnDoe p4huc5gqunnc
  • 正确输入注册代码后,nickserv 应该会给您发回一条消息,说明昵称注册过程已成功完成。
JohnDoe has now been verified.

现在您应该已“登录”到您的昵称下。如果您断开与服务器的连接,要使用您的昵称重新登录,您需要使用密码向 nickserv 发送消息

/msg nickserv identify [PASSWORD]

例如

/msg nickserv identify 1234abcd

完成此操作后,它应该会回复您,说明您已成功登录。

You are now identified for JohnDoe

私人对话和聊天

[编辑 | 编辑源代码]

默认情况下,使用 IRC 的对话是公开的,频道中的所有用户都可以看到。

要与频道中的用户进行私人对话,请键入“/query 昵称”。

要进行私人聊天,请加入一个不存在的频道,然后使用命令“/mode +i”只允许通过邀请加入。分成几个步骤

  1. /join #mynewchannel
  2. /mode +i
  3. /invite someotherguy

IRC 客户端

[编辑 | 编辑源代码]

要使用 IRC,您需要一个 IRC 客户端,这是一个让您连接到 IRC 服务器并进入 IRC 频道的程序。有很多 IRC 客户端

一些 IRC 客户端
IRC 客户端 描述 操作系统限制 备注
ChatZilla Firefox 的附加组件。
IRSSI 具有纯文本用户界面。
mIRC Windows 适合初学者。
XChat (XChat-WDK for Windows)
Smuxi 适用于 GNOME 的用户友好型客户端。 Linux 和 Windows
Colloquy 仅适用于 Mac OS X。
Pidgin 多协议客户端。 支持的聊天协议比 IRC 更多。
Miranda 多协议客户端。
Trillian 多协议客户端。
Opera 集成了 IRC 客户端的网页浏览器。
BitchX

IRC 命令

[编辑 | 编辑源代码]

以下是 IRC 协议中一些基本命令的概述。所有命令前面都带有一个斜杠“/”,在大多数客户端中,这表示接下来将执行 IRC 命令。对于包括 ChatZilla 和 Pidgin 在内的一些 IRC 客户端,您不需要了解这些命令:您只需使用图形用户界面告诉客户端您想做什么,客户端就会为您发送必要的命令。

基本命令

[编辑 | 编辑源代码]

以下部分列出了一些 IRC 的基本命令。请注意,并非所有命令在所有客户端中都可用,因为其中一些命令是客户端端的创造,旨在简化您的操作,本身并不属于 IRC 协议。

命令 作用 示例
/attach

/server

/connect

登录服务器 /attach irc.freenode.net

/server irc.freenode.net

/connect irc.freenode.net

/nick 设置您的昵称 /nick YourName
/join 加入频道 /join #wikibooks
/msg 发送消息(可以是私聊或频道消息) 向频道发送消息:/msg #wikibooks hello world!

发送私聊消息:/msg JohnDoe Hi john.

/whois 显示服务器上用户的信息 /whois JohnDoe
/clear

/clearall

清除频道的文本。

清除所有打开的频道的文本。

/clear

/clearall

/away 设置离开消息。要从“离开”状态返回,请键入/away或发送消息。 /away 我因为...而离开。
/me 向频道发送动作。请参见示例。 以下

/me loves pie.

将输出到 JohnDoe 的聊天中

JohnDoe loves pie.

/topic 查询或设置讨论主题。 /topic 使用 IRC

特权用户命令

[编辑 | 编辑源代码]

适用于半操作员、频道操作员、频道所有者和管理员的命令

命令 作用 示例
/kick 踢出或将用户从频道中踢出。您必须是半操作员或以上才能执行此操作。 以原因踢出频道用户:/kick #channel JohnDoe I kicked you because...
/ban

/unban

禁止用户进入频道。您必须是频道操作员或以上才能执行此操作。

解除频道用户的禁令。您必须是频道操作员或以上才能执行此操作。

/ban JohnDoe

/unban JohnDoe

华夏公益教科书