互联网技术/IRC
Meta 有相关信息 |
互联网中继聊天,通常缩写为 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”这样的命令来获取有关其他用户的有趣信息。
要使用互联网中继聊天,你需要执行以下操作
- 选择并安装 IRC 客户端。
- 找到讨论你感兴趣的主题的 频道(类似于其他聊天环境中的房间)。
- 找到 服务器,该服务器是频道所在的服务器。你可以通过项目的网站(如维基教科书)找到服务器和频道。
- 使用客户端连接到 服务器,使用你选择的昵称。
- 连接到 频道(房间)。
一些 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”命令仅允许邀请加入。分步进行
- /join #mynewchannel
- /mode +i
- /invite someotherguy
要使用 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 协议。
命令 | 功能 | 示例 |
---|---|---|
/attach
|
连接到服务器 | /attach irc.freenode.net
|
/nick
|
设置您的昵称 | /nick YourName
|
/join
|
加入频道 | /join #wikibooks
|
/msg
|
发送消息(可以是私人消息,也可以是向整个频道发送的消息) | 向频道发送消息:/msg #wikibooks hello world! 发送私人消息: |
/whois
|
显示服务器上某个用户的相关信息 | /whois JohnDoe
|
/clear
|
清除频道中的文本。 清除所有打开频道中的文本。 |
/clear
|
/away
|
设置离开信息。要从“离开”状态返回,请输入/away 或发送消息。 |
/away I'm away because...
|
/me
|
向频道发送一个动作。请参见示例。 | 以下命令
将在 JohnDoe 的聊天中显示为
|
/topic
|
查询或设置讨论主题。 | /topic Using IRC
|
半操作员、频道操作员、频道所有者和管理员的命令
命令 | 功能 | 示例 |
---|---|---|
/kick
|
踢出或将用户从频道中踢出。您必须是半操作员或以上才能执行此操作。 | 以原因将用户踢出频道:/kick #channel JohnDoe I kicked you because... |
/ban
|
禁止用户进入频道。您必须是频道操作员或以上才能执行此操作。 解除对用户的频道禁令。您必须是频道操作员或以上才能执行此操作。 |
/ban JohnDoe
|