跳轉到內容

網際網路技術/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

這應該可以為您提供有關如何使用該服務的詳細說明。

網路示例操作指南

[編輯 | 編輯原始碼]

這個過程非常簡單,一旦您選擇了您想要註冊的暱稱(假設它尚未被其他人擁有)並選擇了一個密碼,請按照以下步驟操作

  • 如果您還沒有這樣做,請將您的暱稱更改為要註冊的暱稱
/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 命令。對於包括 ChatZilla 和 Pidgin 在內的一些 IRC 客戶端,您不需要了解這些命令:您只需使用圖形使用者介面告訴客戶端您想做什麼,客戶端就會為您傳送必要的命令。

基本命令

[編輯 | 編輯原始碼]

以下部分列出了一些 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

華夏公益教科書