跳转到内容

互联网技术/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

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

网络示例 HowTo

[编辑 | 编辑源代码]

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

  • 如果你还没有这样做,请将你的昵称更改为你想要注册的昵称
/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 命令。对于一些 IRC 客户端,例如 ChatZilla 和 Pidgin,您不需要了解这些命令:您可以使用图形用户界面告诉客户端您想做什么,然后客户端会为您发送必要的命令。

基本命令

[编辑 | 编辑源代码]

以下列出了 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 I'm away because...
/me 向频道发送一个动作。请参见示例。 以下命令

/me loves pie.

将在 JohnDoe 的聊天中显示为

JohnDoe loves pie.

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

特权用户命令

[编辑 | 编辑源代码]

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

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

/unban

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

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

/ban JohnDoe

/unban JohnDoe

华夏公益教科书