跳轉到內容

網際網路技術/IRC

來自華夏公益教科書,開放的書籍,開放的世界
(從 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 客戶端不會看到你輸入和編輯訊息的過程。你建立一條訊息塊(通常只是一句話)並立即傳輸該塊,該塊會被伺服器接收,並根據定址,將其傳遞到相應的客戶端,或中繼到其他伺服器,以便繼續傳遞或中繼,等等。

連線到伺服器後,透過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 JohnDoe@email.com
  • 向 nickserv 傳送訊息後,你應該很快收到回覆,說明它已收到你的註冊請求,並已向你提供的地址傳送了一封電子郵件。
An email containing nickname activation instructions has been sent to JohnDoe@email.com
  • 要完成註冊過程,你需要使用傳送到你郵箱的註冊碼向 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 我離開了,因為...
/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

華夏公益教科書