Есть вопрос?
Зайди на форум

Поиск:

Denix: русификация Ubuntu и кодеки :: RSS:: Скачать книги Колисниченко в PDF

Англо-русский словарь компьютерных терминов (Д. Колисниченко)

A  B  C  D  E  F  G  H  I  K  L  M  N  O  P  Q  R  S  T  V  W  X  Y  Z 

укрпочта отслеживание посылок перевод денег график отключения света в Кировограде график отключения счета в Киеве график отключения света в Одессе (zip)

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

Глава 13. Пишем первый бот

Бот - это специальная программа, подключающаяся к IRC-серверу. По сути, бот является автономным IRC-клиентом, работающим без вмешательства человека. Если обычные IRC-клиенты просто выводят сообщения канала в своем окне и отправляют на канал/пользователю сообщение, введенное пользователем, то боты сами анализируют сообщения на канале и генерируют собственные сообщение, основываясь на полученных фактах.

Принцип работы простейшего бота следующий: бот в цикле получает и выводит на экран сообщения канала - сообщения, которые были отправлены в канал пользователями или другими ботами. Во время этого бот должен реагировать на PING-события, иначе сервер отключит его. Также мы рассмотрим, как отправить в канал собственное сообщение - в общем, в этой главе мы рассмотрим основы, лежащие в основе любого бота.

Нужно сразу отметить, что просто так бот не напишешь. Для этого нужно знать хотя бы основы одного из трех языков программирования: Perl, PHP или Java. Именно на этих языках мы будем писать наши боты. Теоретически, бот можно написать на любом языке - хоть и на Ассемблере, но мы такие варианты рассматривать не будем. Кроме основ программирования вам придется выучить основы сетевого программирования, чтобы сейчас вас не бросало в дрожь от выражений "откроем сокет" или вроде того. В этой книге мы не будем рассматривать ни один язык программирования - вы уже должны его знать. Не подумайте, что я что-то усложняю. Отнюдь нет, можно было бы рассматривать программирование ботов непосредственно через сокеты - в этом случае написать бот можно на любом языке, где есть поддержка сокетов, точнее, средств операционной системы для работы с сокетами, например, на C. Но мы пойдем путем наименьшего сопротивления, и будем разрабатывать наши сокеты с помощью дополнительных библиотек, существенно облегчающих разработку бота. Суть их состоит в том, что системная часть разработки бота остается "за кадром".

Для написания ботов вам понадобятся следующие библиотеки:

Могу вас обрадовать: разницы, под какой операционной системой писать боты, абсолютно никакой нет. Perl, PHP и Java существуют как в версиях для Windows, так и для Linux. Но все-таки Windows предпочтительнее: все необходимое программное обеспечение (Perl, PHP и Java) есть в составе вашего дистрибутива, а кое-что уже даже установлено.

Если у вас Windows, загрузить необходимое программное обеспечение можно по следующим адресам:

Вы не знаете ни одного языка программирования, не говоря уже о сетевом программировании? Тогда я посоветую вам начать с PHP: он наиболее легок для понимания, очень гибок и имеет мощный механизм разработки Web-приложений. Может вам когда-то надоест писать боты - тогда вы с легкостью сможете "переквалифицироваться" в Web-программиста. Не подумайте, что на Perl нельзя написать Web-приложение. Я такого не говорил. Но с меньшими "временно-мозговыми" затратами вы это сделаете на PHP.

Чтобы немного облегчить вашу участь, в этой главе мы рассмотрим основы IRC-протокола.

13.1. Основы протокола IRC

Протокол IRC описан в следующих документах:

Данные документы вы легко найдете в Интернете. Если вам лень искать, вы можете скачать их отсюда http://eggdrop.org.ru/man/. Все они на английском, поэтому если вы его не знаете, сильно они вам не помогут.

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

Протокол IRC - текстовый - вся информация передается в текстовом виде, причем без всякого кодирования (если, конечно, не используется SSL) и ее можно прочитать невооруженным взглядом. А это дает нам возможность самим исследовать протокол IRC, не читая RFC-документов. Как? Очень просто. Для этого нам даже не понадобится сетевой анализатор - мы воспользуемся средствами mIRC. Запустите mIRC, подключитесь к какому-нибудь каналу и введите команду:

/debug @out

Откроется окно отладки, в котором вы увидите непосредственно ту информацию, которую передает и принимает ваш IRC-клиент:

Рис. 13.1. Окно отладки

Проанализируем передаваемую информацию:

irc.tomsk.net PRIVMSG #FunnyWord :тестовое сообщение на канал

irc.tomsk.net PRIVMSG #FunnyWord :команда /who

irc.tomsk.net WHO

:irc.tomsk.net 352 dhsilabs #mnpop ~Miranda 62.152.84.109 irc.run.net...

...

Сообщения на канал отправляются командой PRIVMSG. Эта же команда используется для отправки приватных сообщений другим пользователям. Если отправляется приватное сообщение другому пользователю, то вместо имени канала указывается имя пользователя. Для того чтобы сервер понял, куда нужно отправить сообщение - на канал или пользователю - перед именем канала ставится решетка #. Если вы отправите приватное сообщение пользователю User, то в окне отладки увидите его как:

irc.tomsk.net PRIVMSG User :приватное сообщение

Команды сервера передаются непосредственно, даже без наклонной черты: как вы видите, команда /WHO передается как WHO.

Вывод сервера предваряется двоеточием перед именем сервера - там можно понять, что это ответ сервера.

В окне отладки вы видите далеко не все, что происходит в мире IRC. Давайте усложним нашу задачу.

Давайте усложним нашу задачу и несколько минут побудем в роли IRC-клиента. Как? Очень просто. В составе любой операционной системы есть Telnet-клиент. Но использовать его можно не по назначению, а именно, используя telnet, вы можете подключиться к любому сервису. Зная протокол работы сервиса, вы можете эмулировать работы клиента для данного протокола. Мы уже знаем некоторые команды IRC, поэтому в состоянии "эмулировать" работу IRC-клиента. Выполните следующую команду (далее все, что вы должны будете вводить, я выделил жирным):

telnet localhost 6667

Если подключение к IRC-серверу прошло успешно, вы увидите уведомления о том, что серверу нужен ответ от Ident - сервер не знает вашего ника и прочей информации:

NOTICE AUTH :*** Checking Ident

NOTICE AUTH :*** No ident response

В ответ на это должны сообщить свой ник:

NICK dhsilabs

Вдруг от сервера получен PING:

PING :928645739

Если вы не хотите, чтобы сервер отключил вас, вы должны отправить команду PONG - это ответ на PING:

PONG :928645739

Теперь представимся:

USER dhsilabs 8 * :Denis

dhsilabs - это имя пользователя (login, username - в разных IRC-клиентах по-разному). 8 - это режим пользователя, если вам интересно, что он обозначает и как самому формировать режимы, обратитесь к RFC2812. Но скажу вам наперед, что для написания ботов вам знать это не нужно.  Denis - это настоящее имя пользователя (real name).

После этого вы получите ответ от сервера:

:my.server.name 001 dhsilabs :Welcome to the Internet Relay Network dhsilabs

:my.server.name 002 dhsilabs :Your host is my.server.name, running version beware1.5.7

:my.server.name 003 dhsilabs :This server was created Tue Jul 13 2004 at 20:36:0 7 GMT

:my.server.name 004 dhsilabs my.server.name beware1.5.7 dgikoswx biklmnoprstv

:my.server.name 005 dhsilabs MAP SILENCE=15 WHOX WALLCHOPS WALLVOICES USERIP CPR

IVMSG CNOTICE MODES=6 MAXCHANNELS=10 MAXBANS=45 :are supported by this server

:my.server.name 005 dhsilabs NICKLEN=9 TOPICLEN=160 AWAYLEN=160 KICKLEN=160 CHAN

TYPES=#& PREFIX=(ov)@+ CHANMODES=b,k,l,rimnpst CASEMAPPING=rfc1459 :are supported by this server

:my.server.name 251 dhsilabs :There are 1 users and 0 invisible on 1 servers

:my.server.name 255 dhsilabs :I have 1 clients and 0 servers

:my.server.name NOTICE dhsilabs :Highest connection count: 1 (1 clients)

:my.server.name 422 dhsilabs :MOTD File is missing

:my.server.name NOTICE dhsilabs :on 1 ca 1(4) ft 10(10)

Попробуем подключиться к любому каналу:

JOIN #help

От сервера придет следующий ответ:

:dhsilabs!~dhsilabs@my.server.name JOIN :#help

:my.server.name 353 dhsilabs = #help :@dhsilabs

:my.server.name 366 dhsilabs #help :End of /NAMES list.

Теперь поздороваемся со всеми - отправим на канал сообщение Hello all:

PRIVMSG #help :Hello all!!!!

Ясно, что ответа от сервера не будет - ответ может прийти только от другого пользователя, подключенного к серверу. Поскольку на нашем сервере кроме нас больше никого нет, то ответа ждать не от кого.

Спустя некоторое время вам опять может прийти событие PING, но уже в другой форме:

PING :my.server.name

Вы должны ответить на него так:

PONG :my.server.name

Если вы не ответите вовремя, то увидите сообщение, свидетельствующее о том, что превышен таймаут:

ERROR :Closing Link: dhsilabs[~dhsilabs@my.server.name] by my.server.name (Ping Timeout)

Для выхода с сервера введите команду:

QUIT

Сложно быть IRC-клиентом? Думаю, что нет. В следующем пункте мы автоматизируем выполняемые нами действия, написав свой первый бот.

Рис. 13.2. Подключение к серверу

Рис. 13.3. Отправка сообщения на сервер

На главную

Мне нравится!

Сегодня: 18/01

Поздравлять сегодня некого

Последние посты форума

Интересная картинка

Samsung Galaxy J2 Prime (SM-G532F)

дааа

Обучение PHP-программированию

Новый дизайн сайта

Возвращение на динамическую страницу сайта

С Новым Годом!

Бесплатный хостинг, SSL сертификат, не ограниченно

капец погода в ноябре у нас

Посоветуйте хостинг

флэшмобы

вот люди где живут... экстрим

авто-дилеры

Программы для Linux

книга Командная строка Linux и автоматизация рутинных задач

Совет:

Книги Д. Колисниченко:

Linux

GIMP 2 - бесплатный аналог Photoshop для Windows/Linux/Mac OS: 2-е издGIMP 2 - бесплатный аналог Photoshop для Windows/Linux/Mac OS: 2-е изд
Рассматривается работа с бесплатным и свободно распространяемым популярным графическим редактором GIMP. Материалы второго издания книги основаны на версиях GIMP 2.6.7 и 2.7.0.                                                                                                                              

Самоучитель Linux openSUSE 10.3Самоучитель Linux openSUSE 10.3
Книга предназначена для домашнего и офисного начинающего пользователя Linux и поможет ему самостоятельно установить и настроить операционную систему openSUSE, разработанную в соответствии со всеми принципами Open Source.                                                                                 

Linux. От новичка к профессионалу 4Linux. От новичка к профессионалу 4
Даны ответы на все вопросы, возникающие при работе с Linux: от установки и настройки этой ОС до настройки сервера на базе Linux. Материал книги максимально охватывает все сферы применения Linux: от запуска Windows-игр под управлением Linux до настрой                                                   

PHP

PHP 5/6 и MySQL 6. Разработка Web-приложенийPHP 5/6 и MySQL 6. Разработка Web-приложений
На практических примерах описана разработка Web-приложений на языке PHP версий 5 и 6. Лучшая моя книга по PHP, ищите в продаже 3-е издание! Издательство БХВ- Петербург                                                                                                                                      

Профессиональное программирование на PHPПрофессиональное программирование на PHP
Книга рассчитана на программистов, уже освоивших азы программирования на PHP. Приводятся сведения об отладке, анализе и оптимизации кода                                                                                                                                                                     

PHP и MySQL. Разработка веб-приложений. 5-е изд.PHP и MySQL. Разработка веб-приложений. 5-е изд.
Даны начала программирования на PHP: установка и настройка Apache, PHP и MySQL, а также кроссплатформенной сборки XAMPP, выбор редактора PHP-кода, синтаксис языка и самые полезные функции PHP. Рассмотрено создание собственного движка сайта и ряда доп                                                   

Интернет/CMS

Интернет: от Интернет: от "чайника" к пользователю (+Видеокурс на CD)
Книга предназначена для начинающего домашнего пользователя, поможет ему самостоятельно освоить основы Интернета и начать уверенную работу.                                                                                                                                                                   

Блоги: создание, раскрутка, заработокБлоги: создание, раскрутка, заработок
Эта книга — практическое руководство по созданию и продвижению блога, его раскрутке и популяризации, а также превращению в инструмент, приносящий реальные доходы.                                                                                                                                           

Drupal 7. Руководство пользователяDrupal 7. Руководство пользователя
Эта книга — простое и эффективное учебное пособие по освоению и использованию системы управления контентом веб-сайта Drupal версии 7.0                                                                                                                                                                       

Компьютер/Windows

Первые шаги с Windows 7. Руководство для начинающих (+Видеокурс на CD)Первые шаги с Windows 7. Руководство для начинающих (+Видеокурс на CD)
Просто и понятно для начинающих пользователей описана операционная система Windows 7 и ее новые возможности. Рассказано, как установить Windows 7 (в том числе на нетбук)                                                                                                                                    

Нетбук для экономныхНетбук для экономных
Книга предназначена в первую очередь для экономных пользователей. Упор делается на выбор недорогого нетбука и бесплатных программ.                                                                                                                                                                           

Microsoft Windows 8. Первое знакомствоMicrosoft Windows 8. Первое знакомство
Описаны основные нововведения в Windows 8. Рассмотрена установка системы как на физический компьютер, так и на виртуальный (VMware, VirtualBox).                                                                                                                                                            

Сети

Самоучитель системного администратора. 4-е изд.Самоучитель системного администратора. 4-е изд.
Изложены основные задачи системного администрирования, описаны базовые протоколы, даны рекомендации по выбору оборудования и проведению ежедневных рутинных операций. Подробно раскрыты технологии, используемые при построении информационных систем, опи                                                   

Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.
Книга о настройке сети в Windows (98,NT,XP) и Linux. Является превосходным практическим руководством по созданию и обслуживанию компьютерных сетей.                                                                                                                                                          

Беспроводная сеть дома и в офисеБеспроводная сеть дома и в офисе
Книга поможет начинающему администратору домашней или офисной сети в кратчайшие сроки развернуть, настроить или модернизировать беспроводную сеть. Отличный выбор для построения сети SOHO                                                                                                                   

Безопасность

Анонимность и безопасность в Интернете. От Анонимность и безопасность в Интернете. От "чайника" к пользователю
Простым и понятным языком рассказано, как скрыть свое местонахождение и IP-адрес, используя анонимные сети Tor и I2P, посетить заблокированные администратором сайты, защитить личную переписку от посторонних глаз                                                                                          

Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.
-                                                                                                                                                                                                                                                                                                            

Автомобили

Что делать, чтобы не надули в автосервисе. Советы и рекомендацииЧто делать, чтобы не надули в автосервисе. Советы и рекомендации
Вы недавно приобрели автомобиль или уже имеете водительский стаж, но при этом особо не вникаете в устройство автомобиля?                                                                                                                                                                                     

Популярный самоучитель безопасного вожденияПопулярный самоучитель безопасного вождения
Ценность этой книги в том, что впервые советы вам будет давать проверенный профи: президент клуба BMW! Как быстро и правильно научиться водить машину, парковаться, разгоняться, тормозить.                                                                                                                  

Контраварийное вождение. Советы - Best. Советует и рекомендует президент клуба BMWКонтраварийное вождение. Советы - Best. Советует и рекомендует президент клуба BMW
Ценность этой книги в том, что впервые советы по контраварийному вождению вам будет давать проверенный профи...                                                                                                                                                                                              

Переводные книги

Переводные книгиПереводные книги
Данные книги были переведены мною на русский язык (с английского и чешского). Надеюсь качество перевода вам понравится!                                                                                                                                                                                      

Android

Безопасный Android: защищаем свои деньги и данные от кражиБезопасный Android: защищаем свои деньги и данные от кражи
Рассмотрены различные способы обеспечения безопасности Android-устройств: шифрование персональной информации, хранящейся на устройстве, шифрование передаваемых данных, VPN-соединения, анонимизация трафика                                                                                             

Планшет и смартфон на базе Android для ваших родителей, 2-е изд.Планшет и смартфон на базе Android для ваших родителей, 2-е изд.
Книга знакомит читателя с мобильными устройствами на базе Android. Она написана простым и понятным языком для людей среднего и старшего возраста                                                                                                                                                             

Планшет и смартфон на базе Android для ваших родителейПланшет и смартфон на базе Android для ваших родителей
Книга рассчитана на людей среднего и старшего возраста. Она поможет освоить современный «карманный компьютер» на базе Android, в котором все новое и "не так, как в Windows". Доступным языком описывается, как включить и выключить смартфон и т.д.                                                         

Статьи

Rambler's Top100