IRC — Вікіпедія

IRC (англ. Internet Relay Chat) — технологія багатокористувацьких конференцій в текстовому режимі через мережу Інтернет[1].

Протокол IRC створив у 1988 році фінський вчений і програміст Яркко Ойкарінен (фін. Jarkko Oikarinen).[2]

Опис IRC[ред. | ред. код]

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,...]> — показує інформацію про даного користувача.

Режими каналів[ред. | ред. код]

Оператори каналу можуть задавати різні режими каналів за допомогою команди 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-мережі[ред. | ред. код]

Серед міжнародних мереж популярні:

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Internet Relay Chat. The University of Chicago. Архів оригіналу за 11 серпня 2016. Процитовано 15 червня 2016.
  2. Founding IRC. Jarkko Oikarinen [Архівовано 11 червня 2016 у Wayback Machine.](англ.)

Посилання[ред. | ред. код]