網際網路技術/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 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" 允許僅透過邀請加入。分步操作
- /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
|
