IRC命令的種類
伺服器端命令 ( 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.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擴展出來的伺服器端命令。
客戶端命令 ( Client Command )
客戶端命令,是指從IRC的客戶端發出,並由該客戶端軟體自身執行的命令。 ( Client-self Command )
2.1 客戶端IRC命令
客戶端IRC命令,是指該命令由客戶端發出,經由客戶端軟體在本地執行並添加各項參數後,形成完整的伺服器端命令或者是伺服器端命令的排列組合,而後傳送給伺服器端進行執行的命令。
2.2 客戶端非IRC命令
客戶端非IRC命令,是指該命令由客戶端發出,經由客戶端軟體在本機執行,不需要形成伺服器端命令,並且不需要傳送給伺服器端的命令。客戶端非IRC命令的存在,是IRC trojan得以實現的技術基礎之一。
遠程控制命令 ( Remote Command )
遠程控制命令,已經不是嚴格意義上的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 從眾多的聊天訊息中識別出命令,通常也會對該命令的前置
字元進行定義。常見的是以“.”或者是“!”打頭的前置字元,但也有以某些特定字元串打頭為命令標識的。