Надо Знать

добавить знаний



IRC



План:


Введение

IRC ( англ. Internet Realy Chat ) - Сервис Интернет, который предоставляет пользователям возможность общения путем передачи текстовых сообщений многим людям по всему миру одновременно (в режиме реального времени). Аналогию можно найти в радио на коротких волнах, также используется аналогичное понятие англ. channel (Канал, волна).

Напечатано на компьютере пользователя сообщения становится видимым всем пользователям на том же канале. Пользователь может присоединиться к уже имеющемуся каналу или настроить. Пользователь может создать свой личный канал только для себя и буквально одного-двух человек. Так же, как и в коротковолновиков, пользователь может присвоить себе уникальный "позывной" ("ник", "псевдоним", англ. nick ).


1. Описание IRC

IRC-клиент, подключившийся к нескольким каналам на двух разных IRC-серверах

При подключении к серверу IRC пользователь видит список доступных каналов, в каждый из которых (или сразу в несколько) он может "войти" (подключиться). Каналом является виртуальная "комната", в которой могут находиться несколько пользователей. Все сообщения, выдаваемые в канал, видны всем пользователям, которые находятся на этом же канале. Каждый канал имеет свое название и, как правило, определенную тему для обсуждения. После ?входа? на канал пользователь может видеть, что пишут другие участники канала, а также может сам писать сообщения. Тема, обсуждаемая на канале, обычно следует из его названия (например, канал # wikipedia-ru).

Различные серверы могут объединяться (линковаться) в сеть с единым пространством имен пользователей и каналов. Крупные мировые IRC-сети насчитывают в своем составе сотни серверов. Аварийный временный разрыв IRC-сети на две части называется netsplitьом (сплит).

IRC предоставляет возможность как группового, так и личного общения. Для группового чата в IRC предназначены каналы, на которых пользователи могут собираться и вести общение.

Операторы IRC-сети управляют работой серверов и сети в целом. Как правило, в IRC-сетях операторов тоже устанавливаются ограничения на уровне правил сети, сетевого этикета или даже на уровне IRCd / IRC-сервисов.


2. Технические детали

2.1. Команды

Большинство команд, которые вводятся в командную консоль, отличаются от тех, которые передаются по сети. Вот команды, определенные в 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 - показывает информацию о данном пользователе.

2.2. Режимы каналов

Операторы канала могут задавать различные режимы каналов с помощью команды 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).

2.3. Режимы пользователей

  • +i - невидимый пользователь.
  • +s - получать сообщения сервера.
  • +w - получать wallops.
  • +o - оператор сервера. Для получения должна использоваться команда OPER.

2.4. 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 

3. Документы 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

4. Известны IRC-сети

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

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

  • RusNet
  • WeNet
  • DALNet.RU

4.1. История вопроса

Первые русскоязычные каналы возникли еще в 1990-х годах в международных сетях, таких как DALnet и IRCNet. Вначале, под влиянием UNIX-культуры, было принято кодировать буквы русского алфавита в KOI-8. Примерно с 1995 года начался приток пользователей Windows, которые зачастую вообще не имели понятия, что такое кодовая страница, и не делали различия между кириллицей и Windows-1251. Данное противоречие вызвало много конфликтов, включая холивары. В те времена Стихийно возникла договоренность: вопрос о кодировках отдали в ведение конкретных каналов. Это было очень неудобно для пользователей, однако на тот момент другого выхода не было. Отчасти, именно эта проблема стимулировала примерно с 2000 -го усиленное формирование отдельных русскоязычных сетей, где вопросы кодировки могли бы решаться централизованно.


4.2. Ники

Исторически использование букв кириллицы в никах было невозможно. Однако некоторые современные серверы позволяют это делать. Считать буквы кириллицы, визуально похожие на буквы латиницы, той же буквой? Если считать, то какие именно и как именно? Разные сети имеют разную политику в отношении всего этого.

4.3. UTF-8 - за и против

Сторонники интернационализации обычно считают UTF-8 перспективным кодировкой для всех языков, включая русский. Следует однако отметить, что одна буква кириллицы в UTF-8 занимает два байта, что создает некоторое дополнительную нагрузку на сети и ограничивает максимальную длину одного сообщения. По стандарту, сообщение IRC не может иметь длину более 510 байтов, из которых собственно на текст приходится никак не больше 499 (по нереалистично завышенной оценке). Итак, отправить в одном сообщении более 249 русских букв оказывается невозможно. Ограничение размера сообщений вызывает еще одну неприятность: при попытке превысить установленный предел сервер обрезает сообщения. Если срез пройдет посередине русской буквы (т.е. будет передан первый ее байт, но отвергнут другой), то вышла, последовательность байтов перестанет, с точки зрения UTF-8, быть правильной строкой. Ряд клиентов (например, Xchat или mIRC) отразят такое сообщение как 8-битное (например, в Latin-1 или Windows-1251), что сделает его полностью нечитаемым и займет, к тому же, много места на экране.

Единой несомненным преимуществом использования UTF-8 для кодирования русского языка является возможность цитировать тексты на других языках, а также использовать экзотические символы вроде "→" и "☺". К тому же, будучи клиентом IRC-сети, в которой UTF-8 принят повсеместно, можно будет общаться сразу на многих языках, не заботясь о техническом представлении букв. Пока, однако, неизвестны многоязычные сети, явно оговаривают необходимость использования только UTF-8, которые используют UTF-8 как внутреннее кодирование, или каким-либо иным образом упорядочивают кодировку клиентами.


См.. также

Ссылки


Интернет Это незавершенная статья о Интернет.
Вы можете помочь проекту, исправив и дополнив ее.

код для вставки
Данный текст может содержать ошибки.

скачать

© Надо Знать
написать нам