網際網路技術/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 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 命令。對於包括 ChatZilla 和 Pidgin 在內的一些 IRC 客戶端,您不需要了解這些命令:您只需使用圖形使用者介面告訴客戶端您想做什麼,客戶端就會為您傳送必要的命令。
以下部分列出了一些 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
|
