IRC
Модель TCP/IP (RFC 1122) |
---|
Прикладний рівень |
Транспортний рівень |
Мережевий рівень |
Канальний рівень |
IRC (англ. Internet Relay Chat) — технологія багатокористувацьких конференцій в текстовому режимі через мережу Інтернет[1].
Протокол IRC створив у 1988 році фінський вчений і програміст Яркко Ойкарінен (фін. Jarkko Oikarinen).[2]
При підключенні до серверу 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 виглядають так:
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
Основним документом, що визначає протокол 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
Серед міжнародних мереж популярні:
- DALnet[en]
- EFnet[en]
- Freenode, раніше відома як Open Projects Network (OPN)
- Libera.Chat[en], заснована у 2021 році колишніми учасниками Freenode
- IRCnet[en]
- QuakeNet[en]
- Undernet
- Вікіпедія:IRC — інформація про чат, на якому збираються Вікіпедисти.
- Програми миттєвого обміну повідомленнями
- Matrix (протокол)
- ↑ Internet Relay Chat. The University of Chicago. Архів оригіналу за 11 серпня 2016. Процитовано 15 червня 2016.
- ↑ Founding IRC. Jarkko Oikarinen [Архівовано 11 червня 2016 у Wayback Machine.](англ.)
- IRC-SOFT.net :: IRC, QIP, ICQ, mIRC, Miranda, KVirc [Архівовано 10 вересня 2019 у Wayback Machine.] (рос.)
Це незавершена стаття про Інтернет. Ви можете допомогти проєкту, виправивши або дописавши її. |