О чем тут? Да обо всем подряд. Это моя записная книжка. В основном тут бэкапы заинтересовавших меня статей, новости и ссылки.

Показаны сообщения с ярлыком настройка PsyBnc. Показать все сообщения
Показаны сообщения с ярлыком настройка PsyBnc. Показать все сообщения

Настройка psyBNC

| 5 авг. 2009 г.
Основные настройки из конфигурационного файла

PSYBNC.SYSTEM.HOST1=* - хост который будет "слушать" psyBNC.
PSYBNC.SYSTEM.ME=MyBnc - имя вашего баунсера, используеться для линковки.
PSYBNC.SYSTEM.LANGUAGE=russian - Системная локаль psyBNC.
PSYBNC.SYSTEM.PORT1=3844 - порт который будет "слушать" psyBNС

Основные настройки пользователя

Данные настройки устанавливаются непосредственно через irc клиент.

PASSWORD - Сменить пароль от вашего BNC аккаунта.
BVHOST - Устанавливает виртуальный хост на вашем BNC аккаунте (Если на сервере они есть)
PROXY - Установить соединение с IRC через PROXY. Поддерживаемые типы прокси: SOCKS4, WinGate и Webproxys. Пример: /PROXY proxy.allexsoft.org:8080
SETUSERNAME - Изменить ваше 'Реальное name'
SETAWAY - Установить away причину, она будет автоматически установлена при уходе с BNC. Например: /SETAWAY eating И при /whois вы увидите: yournick is away: eating
SETLEAVEMSG - Установить сообщение, которое будет отправлено на все каналы при уходе с BNC. Например: /SETLEAVEMSG sleeping и на канале вы увидите: yournick is away (sleeping)
LEAVEQUIT - Если установить 1, то BNC автоматически покинет все каналы при уходе с нее.
SETAWAYNICK - При уходе с BNC вы измените свой ник на установленный.
JUMP - Пробует зайти на другой сервер из списка.
BQUIT - Уйти с текущего IRC сервера.
BCONNECT - Установить соединение с IRC сервером, если сделан /BQUIT
AIDLE - anti-idle при вашем уходе с BNC. Пример /AIDLE 1 чтобы активировать.
AUTOREJOIN - Активирует или деактивирует автоматический перезаход на каналы после kick'a. Например: /AUTOREJOIN 1
ADDSERVER - Добавить IRC сервер в ваш список. Пример: /ADDSERVER irc.daemonet.ru:6669
DELSERVER - Удалить IRC сервер из списка серверов (/LISTSERVERS) Например: /DELSERVER 1 где 1 номер сервера в списка. LISTSERVERS - Вывести список ваших IRC серверов.
ADDNETWORK - Добавить IRC сеть на ваш аккаунт.
DELNETWORK - Удалить IRC сеть с вашего аккаунта.
SWITCHNET - Установить в качестве главной IRC сети другою.
ADDOP - Добавить пользователей в свой список Опов. Пример: /ADDOP #chan newpass:*!*@allexsoft.org. Если параметр #chan не указан, то пользователь сможет получить статус оператора на всех каналах, где присутствует ваша BNC.
DELOP - Удалить пользователей из своего списка Опов.
LISTOPS - Вывести список пользователей, которые могут получить Оп от вашего BNC.
ADDAUTOOP - Добавить ник, которому будет автоматически выдан статус Оператора при заходе на канал. Пример: /ADDAUTOOP #allex :*!*allex@allex.us - Выдаст Оп всем на канал #leet с маской *!*allex@allex.us
DELAUTOOP - Удалить ник из своего списка автоопов.
LISTAUTOOPS - Вывести список пользователей, которые получат Оп при заходе на канал от вашего BNC.
ADDBAN - Вы можете банить пользователей на канале, даже если вы не присутствуете на своем BNC. Пример: /ADDBAN By is74! :*!*@*is74.loc
DELBAN - Удалит BAN из вашего списка банов. Например /DELBAN 2
LISTBANS - Выводит список ваших банов.
ADDASK - BNC может 'просить' у добавленного вами бота оп, если вы не соединены с BNC. Например: /ADDASK lamepass :*!Millena@allex.us.
DELASK - Удалить запрос Опа у бота. Например: /DELASK 12
LISTASK - Выводит список всех добавленных ботов на запрос опа.
ADDIGNORE - Добавить хост в список игнорируемых.
DELIGNORE - Удалить хост из списка игнорируемых.
LISTIGNORES - Вывести список игнорируемых хостов.
ADDDCC - Добавить DCC-соединение с ботом. Пример: /ADDDCC MyBot newbie MyPass :the.elite.newbie.com:7333
LISTDCC - Список всех добавленных DCC соединений.
DELDCC - Удалить DCC из вашего списка. Пример /DELDCC 4
DCCCHAT - Запрос DCC-chat'a у пользователей, и ожидание его подтверждений пользователем.
DCCANSWER - Разрешить DCC Chat от ника, если он послал запрос на Chat.
DCCENABLE - Активировать или деактивировать DCC-Chat и Send-Handling на вашем BNC аккаунте.
DCCSEND - Послать файл указанному нику.
DCCGET - Получить файл от ника. Файл будет в downloads/USERnn
DCCSENDME - Послать нику BNC файл. Если он подтвердит, то файл будет отправлен.
AUTOGETDCC - Активировать или деактивировать автоприем посылаемых вам файлов через DCC.
DCCCANCEL - Отменить DCC Chat или Прием файла от ника.
PLAYPRIVATELOG - Вывести лог. Когда вы отсутствуете на BNC все приваты и нотисы идут в лог.
ERASEPRIVATELOG - Очистить лог приватных сообщений и нотисов.
ADDLOG - Добавить источник лога/фильтр. Пример: /ADDLOG #allex :танк - будет вести лог на канале #allex с данным словом 'танк'
DELLOG - Удалить источник лога из вашего списка (/LISTLOGS).
LISTLOGS - Вывести список всех ваших источников логов/фильтров.
PLAYTRAFFICLOG - Показывает трафик-лог.
ERASETRAFFICLOG - Удалит траффик-лог.
ENCRYPT - Расшифровывает разговор указанному каналу/нику.
DELENCRYPT - Удалит расшифровку по номеру.
LISTENCRYPT - Список всех расшифровок.
TRANSLATE - Добавит переводчик в/из канала/ника.
DELTRANSLATE - Удалит переводчик по номеру.
LISTTRANSLATE - Показывает список переводчиков.

Настройки администратора BNC

PASSWORD - Сменить пароль от вашего аккаунта или от аккаунта пользователя.
BREHASH - Перезагружает BNC.
MADMIN - Дает нику права администратора BNC.
UNADMIN - Снимает с ника права администратора BNC.
BKILL - Закрывает соединение ника с прокси.
SOCKSTAT - Показывает/записывает текущий статус.
ADDUSER - Создать нового пользователя.
DELUSER - Удалить пользователя.
NAMEBOUNCER - Дает название вашему BNC серверу, обязательно нужно для линковки.
LINKTO - Добавит линк с BNC на указанные хост/порт
LINKFROM - Добавит линк с BNC от вашего сервера.
RELAYLINK - Принимает или запрещает линки к вашему или от вашего BNC. Например /RELAYLINK name :1 Где name название BNC. Цифра 0 деактивирует, а 1 активирует линк с BNC. Так же позволяет использовать vhost'ы от прилинкованых bnc
DELLINK - Удалит линк с BNC.
LISTLINKS - Показывает весь LINK-List вашего BNC.
RELINK - Сброс линка с BNC. Например /RELINK 1
PLAYMAINLOG - Выводит лог соединений.
ERASEMAINLOG - Удалит лог соединений.
ADDALLOW - Добавит хост в список возможных соединений.
DELALLOW - Удалит хост из списка возможных соединений.
LISTALLOW - Показывает список возможных соединений.
SRELOAD - Перезагружает скрипты.
LISTTASKS - Показывает текущие запущенные задачи.

отсюда

Секреты PsyBnc

| 4 авг. 2009 г.
Данная статья посвящается в первую очередь личностям, юзающими psybnc в сети с сервисами или пользующими опцию setawaynick (который естественно зарегистрирован в сети). В итоге, после сплита либо лага bnc получаем картину:

[22:21:51] * proteriot is now known as prot{St
[22:21:52] * prot{St is now known as proteriot
[22:23:52] * proteriot is now known as prot{St
[22:23:54] * prot{St is now known as proteriot
[22:25:55] * proteriot is now known as prot{St
[22:25:56] * prot{St is now known as proteriot
[22:27:52] * proteriot is now known as prot{St
[22:27:52] * prot{St is now known as proteriot


и, как это ни печально, дело доходит до бана этого посетителя (а еще печальнее, когда забанить его нет возможности).

Итак, после этого небольшого вступления, я расскажу о скриптинге в psybnc, а также об интересных опциях. Возможно, ты о них еще ни разу не слышал или видел краем уха, читая /bhelp. Но в любом случае, повторение - мать учения, поэтому не будет лишним узнать об этих фишках еще раз.

Изначально в Psybnc со скриптами все было плохо. Нет, сами скрипты исправно работали, но... существовал один минус. Если юзер юзает скрипты, то на каждый event этого скрипта создается не умирающий процесс-зомби. Таким образом, зомбей в системе могло быть до 300 штук. Согласись, что легче отказаться от скриптов, чем смотреть гадость в таблице процессов. Но наука не дремлет, и человек по нику BetaTEST (из Подольска), а быть может кто-то еще (лично я не видел), написал патч к кривому p_script.c, плохо завершающему созданные сокеты. Радикальным решением проблемы является даунлоад (http://kamensk.net.ru/forb/1/psybnc.patch) и рекомпиляция psybnc (разумеется, перед make будет команда patch < psybnc.patch). Лично у меня после такой процедуры не возникало проблем со скриптами.

Соббсно скриптинг. Не надейся, я не буду тебе перепечатывать файл SCRIPTING, это ты прекрасно сделаешь сам (с помощью твоего любимого словаря). Я лишь расскажу азы и создание маленьких, но необходимых скриптов, с помощью которых ты можешь решить вышесказанную проблему.

Для начала тебе нужно знать, что скрипты для каждого юзера лежат в scripts/USER#.SCRIPT, где # - личный номер юзера на bnc (его можно узнать пролистав psybnc.conf). Этот файл, естественно, должен быть доступен для чтения юзеру, под которым запущена пся.

Синтаксис скрипта очень простой. Он состоит из нескольких частей:

событие команда от_кого кому текст действие

Подробнее о каждой части скрипта.

Cобытие - реакция на какое либо действие от сервера или другого пользователя. Например, server - мессага от сервера, ctcp - реакция на ctcp-запрос, alias - собственная команда юзера на psybnc, dccchat - реакция на dcc-чат и другие.

Команда зависит от события. Если это server, команда должна быть строкой, пришедшей с сервера (NOTICE, JOIN, etc). Если это ctcp, под командой должен выступать запрос ctcp и так далее.

От_кого, Кому - маска исходящего (входящего) адресата (получателя) сообщения.

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

Действие - собственно сам скрипт. Как правило начинается с оператора echo, в котором находится сообщение посылаемое в определенный сокет. Их 3: STDIN (прямая команда на сервер), STDOUT (команда в DCC-чат) и STDERR (команда в главный лог psybnc). Если ты знаешь как обращаться с потоками, то перенаправить команду для тебя не составит труда. Это делается стандартным > &№, где № номер потока от 0 до 2.

Вот общие сведения для того, чтобы начать писать элементарные скрипты. Напишем наш первый скрипт. Нет, не hello world, а hello nickserv :)), то есть передачу идентификационной информации NickServ'у, а именно пароля на ник в случае сплита (или в общем случае - по запросу сервиса).

server NOTICE *!Services@ircnet.ru * "*registered and protected*" echo "IDENTIFY coolpassword"
server NOTICE *!Services@ircnet.ru * "*зарегистрирован и защищен*" echo "IDENTIFY coolpassword"


Вот эти две строки прекратят беспорядок с никами. Разумеется, маска сервисов должна подходить под шаблон *!Services@ircnet.ru, а нотайс от них содержать registered and protected, или аналог на русском языке. При этом событии на сервер будет автоматически отправлена строка IDENTIFY coolpassword (как ты наверное догадался, по умолчанию данные заносятся в нулевой дескриптор aka прямо на сервер).

С помощью lame-скрипта, можно легко сделать реакции на ctcp-запросы (учти, что когда ты в сети, ответ будет как от псюхи, так и от твоего клиента), например таким образом:

ctcp PING *!*@* * * echo "NOTICE $NICK :pong!"

Ах да, я совершенно забыл о переменных, которые способны скрасить жизнь скриптера. Это в первую очередь пропарсенная строка от события сервер, включающая в себя $P1, $P2, $P3 ее части, разделенные пробелом, а также универсальные переменные $TO, $NICK и прочие (содержащие в себе адресата, либо канал). Служебные переменные USERNUMBER, USERLOGIN, USERNICK, USERHOST и USERON, хранящие в себе инфу о подключенном юзвере (значения этих переменных можно посмотреть в psybnc.conf либо в SCRIPTING-мане).

Вернемся к потокам. Допустим, тебе захотелось узнать, когда заходил человек под ником FreeMan на канал #programmers, даже если в это время ты был в оффлайне. Заставим псюху писать эту конфиденциальную инфу в твой log, который будет тебе выведен, когда ты будешь online. Это можно сделать следующим скриптом:

server JOIN FreeMan!*@* #programmers * echo "User $NICK joined on $TO" >&2

Как видишь все просто. Еще раз повторю, что полное описание синтаксиса скриптов изложено в SCRIPTING (на нудном английском языке и с банальными примерами =)). На этом кончаю %). Пусть ты понял вышеизложенный материал и освоил скрипты в psybnc.

PS: после изменения личного скрипт-файла набери команду sreload на бнц, чтобы перезагрузить скрипт.

Вообще о псюхе можно говорить часами. Это самый чудесный баунсер, который я когда-либо видел. В нем слилось все - возможность скриптить, разные опции и настройки, небольшие недоработки и глюки с процессорным временем ;). Хотелось бы отметить пару фишек, которые есть в /BHELP, но удостоены внимания быть описаны в этой статье.

ADDOP и ADDAUTOOP. Позволяют опать ники на определенном канале. Отличие первой команды от второй в том, что в ней задается пароль для опа (при мессаге "OP пароль" в приват человеку дается оп на канале). ADDAUTOOP же дает автоматический оп по определению и по хосту ;).

ADDBAN. Награждает человека баном на определенном канале при его заходе на него. Иными словами, симуляция akick-листа =).

ADDCC. Прелестная опция, которая позволяет соединиться с ботом по DCC. Причем, когда ты свалишь с баунсера, соединение не пропадет. Любители эггдропов - это ваша команда.

Синтаксис этих (и других) команд, ты можешь посмотреть, опять же, через /BHELP. Всегда помни, что твой друг - RTFM и его нельзя стесняться =).

На этом сей урок объявляю законченным. Я отнюдь не заставляю тебя скачивать псюху и юзать ее в полную силу. Просто хочу, чтобы ты усвоил этот материал и прекратил флудить каналы и сеть лишними сменами ников =).

Взято тут