IRC
Материал из Cetki Wiki.
Карточка протокола
|Аббр = IRC |Название = Internet Relay Chat |Уровень = Прикладной |Семейство = TCP/IP |Создан = 1988 |Порт = 194/TCP, 6667/TCP |Назначение = Доступ к чат-серверам |Спецификация = RFC 1459, RFC 2810, RFC 2811, RFC 2812, RFC 2813 |Клиенты = irssi, KVIrc, mIRC, X-Chat |Серверы = hybrid-ircd, Hyperion
IRC (Internet Relay Chat} — ретранслируемый интернет-чат) — сервисная система, при помощи которой можно общаться через сеть Интернет с другими людьми в режиме реального времени. Она была создана в 1988 году финским студентом Ярко Ойкариненом (Jarkko Oikarinen). В русском компьютерном сленге IRC называют «иркой», «ирцем», а также «мирк», «мирц» (кальки с названия наиболее популярного клиента — программы mIRC).
IRC начало завоевывать особенную популярность после операции «Буря в пустыне» (1991), когда сообщения со всего мира собирались в одном месте и в режиме «on-line» транслировались в IRC [1]. Подобным образом IRC использовалось и в 1991, во время путча в СССР, когда пользователи из Москвы в реальном времени сообщали всему миру о происходящем на улицах.
Содержание |
Описание IRC
IRC состоит из серверов. Сервер может быть соединён с другими серверами. Совокупность серверов, соединённых друг с другом, образует сеть. В мире существуют десятки сетей. Наиболее старые и известные - это IRCNet и EfNet, образовавшейся из расколовшейся первой irc сети.
Для работы с irc необходима специальная программа клиент. Для Unix самая распространённая - ircII (консольная) со всевозможными front-end для работы под X-Window. Под win32 это mIRC. Она проста в настройке и установке настолько, что 90% пользуются именно ею и часто незнающие люди называют irc мирком. Далее надо подключится к серверу. Для этого наберите /server адрес_сервера.
После подключения к серверу можно найти нужного человека и общаться с ним. Можно также подключиться к каналу. Общение на канале напоминает общение людей в комнате. Кто-нибудь говорит и все его слышат. У каждого канала есть имя, которое отражает общую тематику разговора. Это может быть как интересующая всех тема (например, #linux, #quake, #wikipedia-ru[2]), так и просто какое-нибудь объединяющее всех название (например, #ufa, #odessa). Если в первом случае разговоры обычно ведутся вокруг указанной тематики, то во втором случае разговоры ведутся на совершенно разнообразнейшие темы.
Кроме обычных пользователей сети irc есть так называемые операторы каналов и операторы сети. Операторы канала - это "хозяева" канала. Они могут закрыть доступ на канал без приглашения, лишить любого пользователя возможность говорить на канале, выкинуть пользователя с канала, поставить ему бан (невозможность зайти на канал) и многое другое. Иными словами, это управляющие (модераторы), которые следят за порядком на канале. Оператором канала в классическом случае становится тот, кто первым заходит на канал и тем самым создаёт его. Но на данный момент такие случаи очень редки. В основном сейчас существует множество постоянных каналов. У таких каналов есть постоянные операторы. Для того, чтобы они получили статус оператора при входе на канал используются обычно постоянно сидящие на канале боты (или роботы), которые имеют статус оператора и могут его раздавать определённым пользователям.
Боты - это программы, которые подключаются к irc серверу и могут выполнять специальные операции. Кроме поддержки статуса оператора, боты могут выполнять функции доски объявлений, могут выводить информацию о заходящем на канал пользователе и множество другого. Отношение к ботам в разных сетях разное и в основном зависит от общей политики сети. Например, в IRCNet боты не приветствуются, но и нет регистрации каналов. В сети EfNet регистрации каналов также нет, но к ботам относятся равнодушно.
Операторы сети - это администраторы, управляющие работой сети в целом. В их власти выкинуть пользователя с сервера и запретить ему вход на отдельный сервер или вообще на все сервера сети. Однако операторам запрещено вмешиваться во внутренние дела каналов - для этого существуют операторы каналов. Фактически операторы могут вмешиваться только если в результате действий какого-либо пользователя нарушается нормальная работа сети.
Команды
Большинство команд, которые вводятся в командную консоль, отличаются от тех, которые передаются по сети. Вот команды, определённые в 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— даёт пользователю право говорить на модерируемых каналах. -
+a— анонимный канал. Имена всех пользователей скрываются какanonymous!anonymous@anonymous(отсутствует во многих реализациях) -
+m— только пользователи с флагами +o или +v. -
+n— только находящиеся на канале пользователи могут посылать в него сообщения -
+p/+s— канал скрывается во всех ответах сервера если пользователь не находится -
+t— тему канала могут изменять только операторы -
+l limit— ограничевает количество пользователей на канале числом limit. -
+k key— устанавливает ключ (пароль) от канала key -
+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)
Документы 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-сети
Среди международных сетей популярны:
- EFNet
- QuakeNet
- Undernet
- DALnet
- Freenode, ранее известная как Open Projects Network (OPN)
- FreeNet
- IRCNet
В названных сетях наиболее употребительным языком общения является английский. Существуют и сети, основной язык которых отличен от английского, в частности русскоязычные сети:
- RusNet
- IRCNet.Ru
- DALNet.RU
- WeNet
- ByNets (белорусская)
- Dal.Net.ru
- Dogm.NET
- TURLINet
- IrcCity (RootNet)
Ссылки
- ircinfo.ru — программы, новости, статьи об IRC, вебгейт
- neora.ru — помощь и статьи об IRC
- kvirc.ru — помощь по IRC и клиенту KVIrc
- bestirc.ru — русскоязычные материалы об IRC, файлы, статьи, скрипты
- irchelp.org— документация по IRC
- irc.run.net — документация по IRC
- irc-junkie.org — новости зарубежного IRC
- Статистическая информация по различным IRC-сетям
- www.ircnet.su — помощь и статьи об IRC
- rus-net.org — всё о русском IRC
