網際網路技術/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 命令。對於一些 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 I'm away because...
|
/me
|
向頻道傳送一個動作。請參見示例。 | 以下命令
將在 JohnDoe 的聊天中顯示為
|
/topic
|
查詢或設定討論主題。 | /topic Using IRC
|
半操作員、頻道操作員、頻道所有者和管理員的命令
| 命令 | 功能 | 示例 |
|---|---|---|
/kick
|
踢出或將使用者從頻道中踢出。您必須是半操作員或以上才能執行此操作。 | 以原因將使用者踢出頻道:/kick #channel JohnDoe I kicked you because... |
/ban
|
禁止使用者進入頻道。您必須是頻道操作員或以上才能執行此操作。 解除對使用者的頻道禁令。您必須是頻道操作員或以上才能執行此操作。 |
/ban JohnDoe
|
