IRC () — технологія багатокористувацьких конференцій в текстовому режимі через мережу Інтернет.
Протокол IRC створив у 1988 році фінський вчений і програміст Яркко Ойкарінен ().Founding IRC. Jarkko Oikarinen
Опис 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,...]> — показує інформацію про даного користувача.
Режими каналів Оператори каналу можуть задавати різні режими каналів за допомогою команди MODE. У RFC 2811 визначені такі режими: +O user — позначає творця каналу. Не повинен змінюватися вручну (відсутня в багатьох реалізаціях). +o user — позначає оператора каналу. +v user — дає користувачеві право говорити на модерованих каналах (див. + m). +a — анонімний канал. Імена всіх користувачів ховаються як anonymous!anonymous@anonymous (відсутня в багатьох реалізаціях). +m — тільки користувачі з прапорами +o, +h, або +v можуть посилати в нього повідомлення. +n — тільки користувачі, що знаходяться на каналі, можуть посилати в нього повідомлення. +p/+s — канал ховається в усіх відповідях сервера, якщо користувач не знаходиться на цьому каналі. +t — тему каналу можуть змінювати тільки оператори. +l limit — обмежує кількість користувачів на каналі числом limit. +k key — встановлює ключ (пароль) на канал key. +i — на канал можна увійти тільки за запрошенням (invite). +b — вивести список банів +b на каналі. Доступний всім користувачам. +b mask — забороняє доступ до каналу користувачів, що збігаються з маскою mask. +e mask — дозволяє користувачам, що потрапляють під маску mask, заходити на канал незалежно від режимів +b. +I mask — дозволяє користувачам, що потрапляють під маску mask, заходити на канал незалежно від режиму +i. +c — оформлення тексту на каналі заборонено (не визначено в RFC).
Режими користувачів +i — невидимий користувач. +s — отримувати повідомлення сервера. +w — отримувати wallops. +o — оператор сервера. Для отримання повинна використовуватися команда OPER.
CTCP CTCP — це особливий тип повідомлень. Повідомлення CTCP виглядають так: PRIVMSG target :\001command [arguments]\001 target — це канал або користувач, якому надсилається повідомлення, \001 — це бінарний символ 0x01, command — це команда CTCP, arguments — аргументи команди. Основні команди: PING — повертає аргументи назад. VERSION — повертає версію клієнта. USERINFO — повертає інформацію про користувача. CLIENTINFO — повертає інформацію про клієнта. SOURCE — повертає джерело, звідки можна завантажити клієнт. TIME — повертає час на комп'ютері користувача. ACTION — емулює дію (команда /me).
Відповідь на CTCP-запит приходить в наступному вигляді: NOTICE target :\001command [arguments]\001
Документи RFC Основним документом, що визначає протокол IRC, є RFC 1459 - Internet Relay Chat Protocol. Пізніше були розроблені ще кілька документів, що доповнюють стандарт: RFC 2810 — Internet Relay Chat: Architecture RFC 2811 — Internet Relay Chat: Channel Management RFC 2812 — Internet Relay Chat: Client Protocol RFC 2813 — Internet Relay Chat: Server Protocol
Відомі IRC-мережі Серед міжнародних мереж популярні:
Freenode, раніше відома як Open Projects Network (OPN) , заснована у 2021 році колишніми учасниками Freenode
Undernet
Див. також
Вікіпедія:IRC — інформація про чат, на якому збираються Вікіпедисти. Програми миттєвого обміну повідомленнями Matrix (протокол)
Примітки
Посилання IRC-SOFT.net :: IRC, QIP, ICQ, mIRC, Miranda, KVirc