인터넷 릴레이 챗(Internet Relay Chat, IRC)은 실시간 채팅 프로토콜입니다.
상용 클라이언트인 irssi를 통해 접속이 가능합니다.
I/O multiplexing을 이용하여 여러 클라이언트의 동시 접속을 지원하며, 클라이언트가 보낸 메시지를 파싱하여 명령을 수행합니다.
make
./ircserv <port> <server_password>-
상용 클라이언트 irssi 이용
/connect <server_name> <port> <server_password>
-
nc명령어 이용nc <server_name> <port>
포트와 연결 후 irssi가 보내는 정보와 동일한 명령어를 입력하여 접속
CAP END PASS <server_password> NICK <nickname> USER <username> <username> <server_name> :<real_name>
| Command | Usage | Description |
|---|---|---|
| NICK | /NICK [new_nickname] |
닉네임 설정 / 변경 |
| PASS | /PASS <server_password> |
서버에 연결하기 위한 패스워드 확인 |
| PONG | /PONG <daemon> |
클라이언트-서버 간의 연결을 확인 |
| QUIT | /QUIT [<message>] |
연결 종료 |
| USER | /USER <username> <hostname> <servername> <realname> |
사용자 정보 설정 |
| Command | Usage | Description |
|---|---|---|
| INVITE | /INVITE <nickname> <channel> |
특정 채널로 유저 초대 |
| JOIN | /JOIN <channel>{,<channel>} [<key>{,<key>}] |
채널 입장 |
| KICK | /KICK <channel> <user> [<comment>] |
특정 채널에서 유저를 내보냄 |
| LIST | /LIST [<channel>{,<channel>} [<server>] |
현재 서버에서 사용 가능한 채널 목록을 조회 |
| LIST -yes | 전체 채널 목록 조회 | |
| LIST #channel | 특정 채널 정보 조회 | |
| PART | /PART <channel>{,<channel>} |
채널 나가기 |
| PRIVMSG | /PRIVMSG <receiver>{,<receiver>} <text to be sent> |
특정 사용자 또는 채널에 메시지를 보내기 |
| NOTICE | /NOTICE <receiver>{,<receiver>} <text to be sent> |
특정 채널 또는 사용자에게 공지를 보내기 |
| TOPIC | /TOPIC <channel> [<topic>] |
특정 채널의 주제 설정 |
| MODE | /MODE <channel> {[+|-]|o|i|t|n} [<limit>] [<user>] |
채널의 모드 설정 |
| i | 초대 전용 채널 설정/제거 | |
| t | 일반 유저의 TOPIC 명령 제한 설정/제거 | |
| k | 채널키(비밀번호) 설정/제거 | |
| o | 채널 운영자 권한 부여/받기 | |
| l | 채널에 대한 사용자 제한을 설정/해제 |
| Command | Usage | Description |
|---|---|---|
| USERHOST | /USERHOST <nickname> |
사용자의 호스트 정보 확인 |
| WHOIS | /WHOIS <nickname> |
사용자 정보 조회 |
| MOTD | /MOTD |
접속 시 전송되는 메시지, Message of the Day |