IRC-клієнт, який підключився до кількох каналів на двох різних IRC-серверах
При підключенні до серверу IRC користувач бачить список доступнихканалів, у кожний з яких (або відразу в декілька) він може «увійти» (підключитися). Каналом є віртуальна «кімната», в якій можуть знаходитися декілька користувачів. Всі повідомлення, що видаються в канал, видно всім користувачам, які знаходяться на цьому ж каналі. Кожен канал має свою назву і, як правило, певну тему для обговорення. Після «входу» на канал користувач може бачити, що пишуть інші учасники каналу, а також може сам писати повідомлення. Тема, що обговорюється на каналі, зазвичай випливає з його назви (наприклад, канал #wikipedia-uk).
Різні сервери можуть об'єднуватися (лінкуватися) в мережу з єдиним простором імен користувачів і каналів. Великі світові IRC-мережі налічують у своєму складісотні серверів. Аварійний тимчасовий розрив IRC-мережі на дві частини називаєтьсяnetsplit'ом (сплітом).
IRC надає можливість як групового, так і приватного спілкування. Для групового чату в IRC призначеніканали, на яких користувачі можуть збиратися та вести спілкування.
Оператори IRC-мережі керують роботою серверів та мережі в цілому. Як правило, в IRC-мережах на операторів теж встановлюються обмеження на рівні правил мережі, мережевого етикету або навіть на рівніIRCd/IRC-сервісів.
Більшість команд, які вводяться в командну консоль, відрізняються від тих, які передаються по мережі. Ось команди, визначені вRFC 2812:
NICK username — змінює нік учасника на зазначене параметром username.
OPER username password — видає права оператора користувачеві, використовуючи відповідний O:Line.
QUIT — від'єднує користувача від сервера.
JOIN channels [keys] — приєднується до каналів channels використовуючи відповідні ключі keys якщо канал має режим +k. Канали в списку розділяються комами.
JOIN 0 — покинути всі канали.
PART channels [:message] — покинути канали channels, використовуючи message. Якщо message містить прогалини, то перед ним ставиться:.
MODE channel /username modes — змінює режими каналу channel (потрібні права оператора каналу) або користувача username (більшість серверів дозволяють змінювати свої режими тільки самим користувачам). Modes — рядок у форматі+flags-flags params.
TOPIC channel [:message] — змінює тему на message. Якщо не вказано параметр message, то повертає тему каналу.
NAMES [channel] — повертає список користувачів на каналі, або, якщо канал не вказано, у всій мережі..
LIST [pattern] — повертає всі канали. Якщо встановлено шаблон pattern, то повертаються тільки канали, що збігаються з ним
INVITE user channel — запрошує user на канал channel.
KICK channels users [:reason] — викидає користувачів users з каналів channels. Можливо вказати причину reason.
PRIVMSG channel /user:message — посилає повідомлення message на канал channel або користувачу user.
NOTICE channel /user:message — аналог PRIVMSG. Згідно зRFC 2812, на NOTICEніколи не може бути автоматичних відповідей.
WALLOPS text — посилає текст всім користувачам з режимом +w.
WHOIS <nick[,nick,nick,...]> — показує інформацію про даного користувача.
CTCP — це особливий тип повідомлень. Повідомлення CTCP виглядають так:
PRIVMSG target :\001command [arguments]\001
target — це канал або користувач, якому надсилається повідомлення, \001 — це бінарний символ 0x01, command — це команда CTCP, arguments — аргументи команди.Основні команди:
PING — повертає аргументи назад.
VERSION — повертає версію клієнта.
USERINFO — повертає інформацію про користувача.
CLIENTINFO — повертає інформацію про клієнта.
SOURCE — повертає джерело, звідки можна завантажити клієнт.
TIME — повертає час на комп'ютері користувача.
ACTION — емулює дію (команда /me).
Відповідь на CTCP-запит приходить в наступному вигляді:
Основним документом, що визначає протокол IRC, єRFC 1459 - Internet Relay Chat Protocol. Пізніше були розроблені ще кілька документів, що доповнюють стандарт: