概念
IRC 用戶在 IRC 網路上的活動無非是兩類:執行命令和聊天。而在 IRC 上, 聊天的實質也是通過命令將訊息傳遞給其他的用戶(users)或頻道(channels)。因此,IRC 的各種命令是 IRC 用戶最基本的操作手段,IRC 的所有功能均通過命令來實現。好的客戶端軟體可以通過各種選單和對話框的形式對命令進行封裝,讓普通用戶在點擊選單或填充對話框的過程中就完成命令的傳送和執行,但卻感覺不到自己實際上在執行 IRC 的命令,免去用戶記憶和考慮命令的各種格式以及參數的煩惱。但是,對於 IRC 的技術型用戶或者發燒友而言,唯有命令才是理解IRC 的根本途徑,進而才能夠在對命令的靈活多變的組合與運用中,創造出無窮的樂趣。
IRC命令的種類
1. 伺服器端命令 ( Server Command )伺服器端命令,是指從IRC的客戶端發出,由伺服器端接收並執行的命令。伺服器端命令是IRC命令的基礎。其發起及運行方式是 客戶端--伺服器端 ( Client -- Server Command )
1.1 基本命令
基本命令是完全由 RFC 1459 所定義支撐的那些命令。所有的基本命令在任何版本的 IRC 伺服器軟體中,均得到支持。
基本命令包括如下命令:
1.1.1 連線及註冊命令: pass, nick, user, server, oper, quit, squit
1.1.2 頻道操作命令:join, part, mode, names, topic, list, invite, kick
1.1.3 伺服器端信息查詢命令:version, stats, links, time, ping, trace, admin, info
1.1.4 訊息傳送命令:privmsg, notice
1.1.5 用戶查詢命令:who, whois, whowas
1.1.6 伺服器端控制命令:away, rehash, restart, summon, users, operwall, userhost, ison, kill, connect
1.2 擴展命令
擴展命令是由各大IRC伺服器軟體版本體系所各自推出的伺服器端命令。IRC在不斷的發展過程中,漸漸形成了3大流派的伺服器端軟體:IRCD,IRCU,IRCX,下面又再分為一些小的流派軟體。這些不同的IRC伺服器端軟體,各自在 RFC1459 的基礎之上,開發出了更多的一些命令,這些命令並不記錄於 RFC 1459 當中,屬於基於 RFC 1459擴展出來的伺服器端命令。
客戶端命令,是指從IRC的客戶端發出,並由該客戶端軟體自身執行的命令。 ( Client-self Command )
2.1 客戶端IRC命令
客戶端IRC命令,是指該命令由客戶端發出,經由客戶端軟體在本地執行並添加各項參數後,形成完整的伺服器端命令或者是伺服器端命令的排列組合,而後傳送給伺服器端進行執行的命令。
2.2 客戶端非IRC命令
客戶端非IRC命令,是指該命令由客戶端發出,經由客戶端軟體在本機執行,不需要形成伺服器端命令,並且不需要傳送給伺服器端的命令。客戶端非IRC命令的存在,是IRC trojan得以實現的技術基礎之一。
遠程控制命令,已經不是嚴格意義上的IRC命令。它是由IRC的某個客戶端用戶發出訊息或者動作,該訊息或者動作通過IRC網路傳遞給其他的一些用戶客戶端,並且觸發在IRC上待命的某些特定客戶端執行某個或者某些動作,相當於以IRC為信息傳遞媒介,遠程控制其他的客戶端執行特定任務的命令。( Client(user) -- Client(BOT)Command )
遠程控制命令通常由單一作者按照自己的意願寫成,需要配合特定的客戶端使用。對普通用戶而言,遠程控制命令最常見於對 IRC Services(服務系統) 和其他BOT (機器人)的遠程控制。而遠程控制命令的存在,也是IRC trojan得以實現的另一技術基礎。
3.1 Services 命令
顧名思義,Services 命令,就是由用戶傳送給 Services (服務系統)上的各個客戶端(比如chanserv, nickserv, w, x, cs 等等),並由其執行特定行為的命令(比如讀寫資料庫,更改指定用戶模式等)。
3.2 其他 BOT 命令
其他 BOT 命令,是指由用戶傳送給IRC上除 Services 以外的其他的BOT(機器人),由該BOT來執行特定行為的命令。
IRC命令的前置字元
對於多數IRC客戶端軟體而言,除去通過選單和對話框完成封裝的那些IRC命令之外,其他的IRC命令在輸入之時,都是與聊天的訊息輸入共用的一個輸入視窗或者對話框。而這些輸入框中所輸入的內容,通常情況下,會被客戶端軟體當作聊天的訊息傳送給頻道(Channels)或者是用戶( users )。那么,客戶端軟體如何判斷輸入框中所輸入的是命令,需要由客戶端自己或者是傳送給伺服器端去執行呢? 這就需要在命令前面添加前置字元,作為命令的標識,當有該字元存在之時,則認為所輸入的是一條命令,客戶端軟體將會首先檢查自身,看是否對該命令有所定義或者封裝,如果有,按自身定義的該命令內容執行;如果沒有,則將該命令傳送給伺服器,交由伺服器執行。
當前大多數客戶端軟體,命令的前置字元均默認為“/”。就是說,用戶需要在命令前面添加“/”,該命令才會被執行。對於比較靈活的客戶端軟體而言,有的也可以靈活設定該默認的前置字元,比如使用“.”,或者是“\”。
對於遠程控制命令,由於其命令的表現形式很多,難以一一盡述。在此僅僅談一下以普通的聊天信息方式來表現和傳送給 BOT 的命令。為了讓 BOT 從眾多的聊天訊息中識別出命令,通常也會對該命令的前置字元進行定義。常見的是以“.”或者是“!”打頭的前置字元,但也有以某些特定字元串打頭為命令標識的。