Starting the server :
./ircserv <port> <password>
Client actions | Execution |
---|---|
Change username : | /user |
Change nickname : | /nick |
Messaging actions | Execution |
---|---|
To send a private message : | /msg |
To switch between/to a private message channel : | /query |
To leave the private message channel : | /query |
Channel actions | Execution |
---|---|
To join/create a channel : | /join |
To leave the channel : | /leave |
Kick (operator privilage) : | /kick |
Invite a user to the channel : | /invite |
Change channel topic : | /topic |
Set/remove the invite-only channel : | /mode +i/-i |
Set/remove the restriction of the TOPIC to operator : | /mode +t/-t |
Set/remove the channel key (password) : | /mode +k/-k |
Set/remove the user limit to channel : | /mode +l/-l |
Channel rules:
- If the channel does not exist, the one joining it first, Creates the channel and becomes the channel operator
- If the channel has no password set, anyone can join
- If the password is set, a client connecting to the channel has to specify it
- If the channel is set to invite-only, password is not necessary but the client has to be invited by someone inside the channel
- If the client limit set is to a lower limit then the current amount of joined Clients, nobody will be kicked but if someone leaves, they cant connect back, same applies to new join tries
- Operator only commands : MODE & KICK
IRC can be tested with nc(netcat) as well.
Linux instalation :
sudo apt-get install netcat
NC usage Connecting with NC (Steps 2-4 need no order):
Step | Execution |
---|---|
1. | nc <ip adress> <port> |
2. | NICK <nickname> |
3. | USER <username> |
4. | PASS <password> |
Action | Command |
---|---|
Join a channel | JOIN <#channelname> |
Leave a channel | PART <#channelname> |
Direct private message | PRIVMSG username :message |
Channel message | PRIVMSG #channelname :message |
Set/remove channel password | MODE #channelname +k/-k password |
Set/remove channel limit | MODE #channelname +l/-l limit |
Add/remove channel operator | MODE #channelname +o/-o nickname |
Set/remove channel topic privilege | MODE #channelname +t/-t |
Set/remove channel to invite only | MODE #channelname +i/-i |
Kick client from a channel | KICK #channelname nickname :reason |