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

Поиск:

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.5. Бот на PHP

Бот на PHP мы будем разрабатывать сразу с использованием класса SmartIRC. Нет, я не пытаюсь упростить себе жизнь, а просто экономлю вам время. Если вы знаете PHP, то вы с легкостью напишите PHP-бот, непосредственно работающий с сокетами, переделав "по образу и подобию" два предыдущих бота. А написать бот с использованием SmartIRC в условиях полного отсутствия документации, поверьте, не очень просто. Скажем так, написание двух предыдущих ботов у меня заняло меньше времени, чем написание одного бота со SmartIRC. В качестве документации использовался исходный код самого класса SmartIRC, благо он достаточно хорошо прокомментирован.

Работа с классом SmartIRC похожа на работу с модулем Net::IRC: вы устанавливаете параметры соединения, указываете обработчики и подключаетесь к серверу. Далее за вас все делает SmartIRC.

13.5.1. Установка SmartIRC и PHP

Прежде, чем начать работу со SmartIRC, его нужно установить. Для этого скачайте архив со SmartIRC с сайта http://www.phpclasses.org/browse/package/1409.html. Должен отметить, что регистрация на этом сайте - занятие довольно скучное и неблагодарное, поэтому можете сразу скачать архив по этой ссылке:

http://www.phpclasses.org/browse/download/zip/package/1409/name/smartirc-2003-12-10.zip

Распакуйте архив в какой-нибудь каталог, например, в каталог php-bot. После этого в каталоге появятся файл SmartIRC.php и каталог SmartIRC. На этом установку бота можно считать завершенной. Но это еще не все. А PHP у вас установлен? Нет? Тогда зайдите на сайт www.php.net и скачайте PHP для Windows (можно качать дистрибутив версии 4.x). Установка проблем не вызывает: вам нужно указать только каталог, куда установить PHP, а также различные каталоги, которые будут использоваться в служебных целях, обычно это будут подкаталоги основного каталога.  После этого вам нужно отредактировать файл php.ini - он будет в каталоге Windows (в Linux этот файл находится в каталоге /etc). Откройте его и измените значение параметра max_execution_time. Данный параметр устанавливает максимальное время выполнения одного сценария (в секундах). Думаю, полчаса (1800 секунд) хватит для работы бота, если предполагается постоянная работа бота, установите 0 (без ограничения времени).

max_execution_time = 1800

 

Примечание. Данный параметр нужно исправить и Linux-пользователям.

 

Пользователям Linux повезло больше - скачивать ничего не нужно, вам нужно установить php. Зайтите в ваш менеджер пакетов, введите php и начните поиск пакетов. Установите все пакеты, связанные с PHP (кроме документации на языках, которые вы не знаете) - рано или поздно они вам понадобятся, если вы хотите и далее использовать PHP.

 

13.10. Установка PHP: пакеты установлены

 

13.5.2. Основы работы со SmartIRC

 

После установки PHP можно приступить к написанию бота, но сначала нам нужно рассмотреть общие принципы работы с классом SmartIRC. Сразу должен отметить, что для работы с ним вам нужно знать основы объектно-ориентированного программирования. Об этом вы сможете прочитать в вашей книге по PHP, она же у вас есть? Если нет, то внимательно читайте комментарии к нашему боту - в этом случае вы сможете писать боты без знания ООП - "по образу и подобию".

Инициализация бота выглядит так:

require 'SmartIRC.php';      // подключаем SmartIRC

 

// создаем экземпляр класса (объект) SmartIRC

// вся последующая работа с классом SmartIRC будет осуществляться

// через переменную $irc

$irc = new Net_SmartIRC;          

                              

// включаем режим отладки - очень полезен при разработке бота

// когда вы будете уверены, что ваш бот полностью готов,

// можете закомментировать эту строку

$irc->setDebug(SMARTIRC_DEBUG_ALL);

 

// не использовать сокеты, вместо этого будут использованы fsocks()

$irc->setUseSockets(false);

 

Для установки обработчиков IRC-событий используется метод registerActionhandler класса SmartIRC:

 

$irc->registerActionhandler(SMARTIRC_TYPE_CHANNEL|SMARTIRC_TYPE_QUERY, '^,ping$', $Bot, 'ping');

$irc->registerActionhandler(SMARTIRC_TYPE_CHANNEL, '', $Bot, 'send');

 

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

Первый параметр метода registerActionhandler - это событие, для которого нужно установить обработчик. Список всех событий вы найдете в файле SmartIRC/defines.php - там ничего сложного, думаю, вы разберетесь. Второй - это RegEx выражение, соответствующее вашему разработчику. Что этого такое? Сейчас поясню. Сервер выдает нам сообщение PING как обычное сообщение. Но надо же как-то "отфильтровать" сообщения, содержащие PING-запросы. Для этого как раз и используется второй параметр. Если полученное сообщение соответствует указанному выражению, значит, будет запущен указанный обработчик. Информацию по RegEx (Regular Expression, регулярным выражениям) вы сможете найти в Интернете - ее там - море. Но вы можете поступить проще. Можно перехватывать все сообщения, а потом анализировать его с помощью функций поиска подстроки. С одной стороны, ваш сценарий вырастет в размере, с другой, вам не придется тратить время на изучение RegEx. Хотя, если вы все-таки выучите RegEx, ваши PHP-проекты (не только боты) станут более компактными и более трудными для любителей-плагиаторов.

Третий параметр registerActionhandler задает пользовательский класс, содержащий методы, которые будут использованы в качестве обработчиков события. Четвертый параметр - это имя самого метода. Выходит, что у нас должен быть объект $Bot какого-то класса. Этот класс должен содержать метод send, который и будет выполнен при возникновении указанного вами события. Не беспокойтесь, если вы ничего не поняли - когда будем разбирать пример, вам все станет ясно.

Для подключения к серверу используется метод connect, а для регистрации - login:

$irc->connect('localhost', 6667); 

$irc->login('PHPBot', 'Denis', 0, 'Dens PHPBot 2006');

 

В этом случае мы регистрируемся на локальном IRC-сервере, используя порт 6667, ник - PHPBot, имя пользователя - Denis, режим - 0 (ранее мы использовали 8), настоящее имя - Dens PHPBot 2006.

Если ник вашего бота зарегистрирован в NickServ (очень рекомендую это сделать), для регистрации в NickServ используйте метод message:

$irc->message(SMARTIRC_TYPE_QUERY, 'nickserv', 'identify <пароль>')

 

После регистрации и аутентификации на NickServ (если надо), мы можем подключиться к каналу:

$irc->join('#канал');

Для отправки сообщения на канал или пользователю (приватного сообщения) используется уже знакомый нам метод message:

 

$irc->message(SMARTIRC_TYPE_CHANNEL, '<#канал>|<пользователь>', 'сообщение');

 

Если хотите отправить сообщение на канал, то перед именем канала нужно поставить решетку (#).

Если вам нужно отправить произвольную команду серверу, для которой не реализованы методы SmartIRC, воспользуйтесь методом _rawsend():

 

$irc->_rawsend($str);

Указанная строка данных будет передана серверу как есть - без какой-либо обработки, поэтому не забудьте в конце строки добавить символы "\r\n".

13.5.3. Код бота

Вот теперь мы знаем достаточно, чтобы написать собственный бот, использующий SmartIRC. Создайте файл bot.php:

 

<?

 

// подключаем SmartIRC

require 'SmartIRC.php';

 

// класс MyBot

class MyBot {

 

// конструктор класса

  function MyBot() {  }

 

// метод ping - отвечает PONG'ом на PING, не изменяйте его

  function ping(&$irc, &$data)

  {

    $irc->message(SMARTIRC_TYPE_NOTICE, $data->nick, 'pong!');

  }

 

// метод отправки сообщения на канал

// данный метод вызывается при получении сообщения канала (или

// приватного сообщения. Для доступа к тексту сообщения используйте

// $data->message

// ник отправителя можно узнать так:

// $data->nick

  function send(&$irc, &$data)

  {

// выводим полученное сообщение

    echo "\nMessage \"$data->message\" From nick $data->nick \n";

 

// отправляет сообщение на канал

    $irc->message(SMARTIRC_TYPE_CHANNEL, '#Den', 'Hello Привет');

 

  return;

  }

 

} // end of class MyBot

 

// объект класса MyBot

$Bot = new MyBot;

 

// объект класса Net_SmartIRC

$irc = new Net_SmartIRC;

 

// включаем режим отладки - вы будете видеть все сообщения сервера

// в окончательной версии бота закомментируйте эту строку

$irc->setDebug(SMARTIRC_DEBUG_ALL);

 

// не используем сокеты

$irc->setUseSockets(false);

 

// устанавливаем обработчик для PING

$irc->registerActionhandler(SMARTIRC_TYPE_CHANNEL|SMARTIRC_TYPE_QUERY, '^,ping$', $Bot, 'ping');

 

// устанавливаем обработчик для сообщений канала

$irc->registerActionhandler(SMARTIRC_TYPE_CHANNEL, '', $Bot, 'send');

 

// подключаемся к localhost/6667

$irc->connect('localhost', 6667);

 

// регистрируемся на сервере:

// Ник - PHPBot

// Имя пользователя - Denis

// Режим - 0 (обычный)

// "Настоящее имя" бота - Dens PHPBot 2006

$irc->login('PHPBot', 'Denis', 0, 'Dens PHPBot 2006');

 

// выбираем канал

$irc->join('#Den');

// запускаем цикл IRC

$irc->listen();

// отключаемся (в принципе, этот оператор - лишний)

$irc->disconnect();

Не спешите запускать сценарий. Перед этим вам нужно запустить ваш IRC-сервер, если вы еще этого не сделали. Запускаем сценарий:

php bot.php

Рис. 13.11. Процесс отладки бота PHPBot

Рис. 13.12. Отладка бота в окне XChat

Надеюсь, приведенного материала хватит, чтобы вы смогли разработать свой первый бот. В дальнейшем мы будем рассматривать создание ботов только на одном каком-нибудь языке. Например, один бот мы напишем на Perl, другой - на PHP, а третий - на Java. Чтобы никому не было обидно. Зная один из языков программирования, рассматриваемых в этой книге, вы без труда "переведете" код бота в код нужного вам языка. Конечно, это при условии, если вы четко усвоили материал, рассмотренный  в этой главе.

На главную

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

Сегодня: 19/01

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

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

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

Samsung Galaxy J2 Prime (SM-G532F)

дааа

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

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

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

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

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

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

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

флэшмобы

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

авто-дилеры

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

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

Совет:

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

Linux

Ubuntu 10. Краткое руководство пользователяUbuntu 10. Краткое руководство пользователя
Книга ориентирована на домашнего и офисного начинающего Linux-пользователя и поможет ему самостоятельно настроить операционную систему Ubuntu Linux.                                                                                                                                                        

Самоучитель Linux: установка, настройка, использование изд. 1-4Самоучитель Linux: установка, настройка, использование изд. 1-4
В книге рассматриваются дистрибутивы Mandriva и Fedora Core. Книга предназначена для всех, кто хочет эффективно использовать у себя на компьютере эту ОС                                                                                                                                                     

Разработка Linux-приложенийРазработка Linux-приложений
Рассмотрены основные аспекты программирования в Linux: от программирования на языках командных оболочек bash и tcsh до создания приложений с графическим интерфейсом с использованием библиотек Tk, glib, GTK+ и средства dialog, Подробно дано программир                                                   

PHP

PHP 5/6 и MySQL 6. Разработка Web-приложений. 2-е издPHP 5/6 и MySQL 6. Разработка Web-приложений. 2-е изд
На практических примерах описана разработка Web-приложений на языке PHP версий 5 и 6. Большая часть кода примеров совместима с обеими версиями PHP, но особое внимание уделено новым функциям PHP 6. Даны начала программирования на PHP: установка и наст                                                   

Современный сайт на РНР и JavaScript (+CD)Современный сайт на РНР и JavaScript (+CD)
Эта книга о PHP и не только. С помощью PHP вы легко создадите сайт любого масштаба — от небольшой личной странички до сайта уровня предприятия со сложной панелью управления.                                                                                                                                

HTML 5 & CSS 3 - практическо програмиране за начинаещиHTML 5 & CSS 3 - практическо програмиране за начинаещи
Тази книга ще ви научи как да прилагате на практика HTML 5 и CSS 3 и да се възползвате от богатите възможности, предлагани в новите уеб стандарти. Изданието е предназначено за всеки, който е решил да се възползва от съвременните технологии за уеб диз                                                   

Интернет/CMS

Новейший самоучитель компьютера и ИнтернетНовейший самоучитель компьютера и Интернет
О такой книге долгие годы мечтали миллионы начинающих пользователей, которые осваивали технику самостоятельно или по непонятным, громоздким руководствам.                                                                                                                                                    

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

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

Компьютер/Windows

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

Самоучитель пользователя компьютером. Как самому устранить 90% неисправностей в компьютереСамоучитель пользователя компьютером. Как самому устранить 90% неисправностей в компьютере
Книга подойдет начинающим пользователям, поможет устранить простые неисправности (проблемы), возникающие при работе с ПК. Рассматривается переустановка Windows                                                                                                                                              

Секреты, настройка и оптимизация реестра Windows 7Секреты, настройка и оптимизация реестра Windows 7
Рассмотрено устройство, настройка и оптимизация реестра, секреты и трюки при работе с ним, параметры популярных Windows-приложений. Описаны программы для мониторинга...                                                                                                                                     

Сети

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

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

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

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

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

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

Автомобили

Особенности безопасной езды в разных условиях (город, бездорожье, гололед, горный серпантин).Особенности безопасной езды в разных условиях (город, бездорожье, гололед, горный серпантин).
Безопасная езда - это когда целы машина, пассажиры, водитель и деньги водителя                                                                                                                                                                                                                               

Новичок за рулем. Советы психолога, юриста, инструктора.Новичок за рулем. Советы психолога, юриста, инструктора.
Книга первая. Рекомендуется всем начинающим водителям. Текст этой книги бесплатно доступен в моем блоге http://dkws.net                                                                                                                                                                                      

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

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

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

Android

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

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

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

Статьи

Rambler's Top100