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-сети

Среди международных сетей популярны:

В названных сетях наиболее употребительным языком общения является английский. Существуют и сети, основной язык которых отличен от английского, в частности русскоязычные сети:

Ссылки

Источник — «http://wiki.cetki.com:777/wiki/IRC»
Личные инструменты