互联网技术/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 客户端不会看到你输入和编辑消息的过程。你创建一条消息块(通常只是一句话)并立即传输该块,该块会被服务器接收,并根据寻址,将其传递到相应的客户端,或中继到其他服务器,以便继续传递或中继,等等。
连接到服务器后,通过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 我离开了,因为...
|
/me
|
向频道发送一个动作。见示例。 | 以下
将在 JohnDoe 的情况下输出到聊天中
|
/topic
|
查询或设置讨论主题。 | /topic 使用 IRC
|
半操作员、频道操作员、频道所有者和管理员的命令
命令 | 功能 | 示例 |
---|---|---|
/kick
|
踢出或将用户从频道中踢出。你必须是半操作员或以上级别才能执行此操作。 | 以原因将用户从频道中踢出:/kick #channel JohnDoe I kicked you because... |
/ban
|
禁止用户进入频道。你必须是频道操作员或以上级别才能执行此操作。 解除对用户的频道禁令。你必须是频道操作员或以上级别才能执行此操作。 |
/ban JohnDoe
|