Как да разработим IRC бот: 12 стъпки (със снимки)

Съдържание:

Как да разработим IRC бот: 12 стъпки (със снимки)
Как да разработим IRC бот: 12 стъпки (със снимки)

Видео: Как да разработим IRC бот: 12 стъпки (със снимки)

Видео: Как да разработим IRC бот: 12 стъпки (със снимки)
Видео: 4. Изпращане на снимки по имейл/електронна поща 2024, Април
Anonim

Ако сте били в Internet Relay Chat (IRC), има вероятност в даден момент да сте срещнали бот. Ботовете са независими програми или скриптове, които се свързват към мрежата по същия начин, по който би направил човек. Те могат да бъдат програмирани да реагират на потребителски команди или дори да разговарят. В това ръководство можете да намерите какви са вашите възможности за изграждане на IRC бот, както и как да го изградите от нулата.

Стъпки

Метод 1 от 2: Оценка на опциите

Разработете IRC бот Стъпка 1
Разработете IRC бот Стъпка 1

Стъпка 1. Помислете за инсталиране на клиентски скрипт

Понякога просто искате да направите проста задача и не искате тя да бъде независима програма. В този случай можете да прикачите скрипт към IRC клиент. Това е доста обичайно да се прави с mIRC, който има здрав скриптов механизъм и голямо разнообразие от налични скриптове. Това е най -лесният вариант и силно се препоръчва, ако нямате много или никакъв опит в програмирането. За останалата част от това ръководство инструкциите изискват известни познания по компютърно програмиране.

Разработете IRC бот Стъпка 2
Разработете IRC бот Стъпка 2

Стъпка 2. Помислете за съществуваща кодова база за вашия бот

Съществуват много програми с отворен код и безплатни програми, които могат да ви помогнат бързо да настроите свой персонализиран бот. Един такъв пример е Eggdrop, най -старият IRC бот, който все още се поддържа.

Разработете IRC бот Стъпка 3
Разработете IRC бот Стъпка 3

Стъпка 3. Помислете дали да не напишете свой собствен бот

За напреднали потребители и разработчици на IRC, които вече знаят пътя си към езика за програмиране, това е чудесен вариант. Можете да използвате почти всеки език, който искате, стига да има поддръжка на сокети, но популярните за използване включват Python, Lua, PHP, C и Perl. Ако не знаете някой от тях, но знаете друг език, това не е проблем. Обикновено можете да намерите примери в мрежата на всеки език, който искате. За тази статия ще демонстрираме използването на PHP. За да използвате PHP, трябва да имате инсталиран PHP-CLI на вашия компютър или сървър.

  • PHP може да бъде изтеглен от php.net
  • PHP скриптове могат да се изпълняват от командния ред. За допълнителна информация и помощ при използване на PHP вижте тази страница с ръководство за PHP.

Метод 2 от 2: Разработване на собствен бот

Разработете IRC бот Стъпка 4
Разработете IRC бот Стъпка 4

Стъпка 1. Съберете подробности за връзката

За да се свържете успешно с мрежата, ще трябва да получите следната информация.

  • Сървър: Името на домейна на сървъра, използвано за свързване към IRC, като например

    chat.freenode.net

  • Пристанище: В повечето случаи това е 6667, но ако не сте сигурни, проверете своя IRC клиент или уебсайта на мрежата.
  • Псевдоним: Псевдонимът, който вашият бот трябва да използва. Имайте предвид, че някои специални знаци обикновено не са разрешени (@#! ~).
  • Идент: Полето ident се появява след псевдонима, когато някой изпълнява WHOIS по следния начин:

    псевдоним! ident@име на хост

  • ГЕКОС: Това поле обикновено съдържа истинско име на потребителя или общо описание на бота, но можете да поставите там каквото искате.
  • Канал: Обикновено искате вашият бот да присъства в един или повече канали. В повечето мрежи те са с префикс „#“, но може да е нещо друго.
Разработете IRC бот Стъпка 5
Разработете IRC бот Стъпка 5

Стъпка 2. Инициализирайте конфигурацията във вашия скрипт

Най -основният начин да направите това е чрез именуване на няколко променливи според имената на конфигурацията по -горе. Можете също така да ги съхранявате в конфигурационен файл и да ги анализирате, но засега просто ще се придържаме към абсолютните нужди.

Разработете IRC бот Стъпка 6
Разработете IRC бот Стъпка 6

Стъпка 3. Свържете се с мрежата

За да направите това, ще трябва да отворите гнездо към сървъра на посочения порт. Трябва също да добавите код за обработка на грешки в тази част, в случай че връзката се провали по някаква причина. В този случай PHP ни предоставя някои чисти функции за ефективно справяне с грешката.

Разработете IRC бот Стъпка 7
Разработете IRC бот Стъпка 7

Стъпка 4. Регистрирайте своя бот

Това означава да предоставите вашия псевдоним, идентичност и GECOS на сървъра, а не да се регистрирате в NickServ. За да направите това, просто напишете командите NICK и USER на сървъра, последвано от връщане на каретка и нов ред. Наложително е да го направите точно както е показано, защото така е посочено в RFC1459, спецификацията за IRC протокола.

Обърнете внимание, че средните два параметъра (в този случай * и 8) трябва да бъдат посочени, но те се игнорират от сървъра. Тези два се използват само между свързани сървъри, а не от директно свързан клиент

Разработете IRC бот Стъпка 8
Разработете IRC бот Стъпка 8

Стъпка 5. Продължете да извличате данни от сокета, като използвате цикъл

Ако не сте използвали цикъл, скриптът ви веднага би се прекратил и ботът би бил практически безполезен. За да поддържате връзка, трябва да изтеглите данни от сървъра, да проверите за въвеждане в потока, който искате, и да отговорите на него, ако е така. Тук ние събираме данни, използвайки socket_read (), за да вземем всички налични за нас данни. Ако има, ние продължаваме да правим всичко, което е на линия. Може да е полезно също да изведете необработените данни в конзолата, за да можете да видите какво се случва от гледна точка на бота.

Разработете IRC бот Стъпка 9
Разработете IRC бот Стъпка 9

Стъпка 6. Напишете пинг манипулатор

Това е важно. Ако не реагирате на пинговете своевременно, сървърът ще ви прекъсне. Нека първо да се погрижим за това. Пингът изглежда така, когато се изпраща от сървъра:

PING: rajaniemi.freenode.net

. Сървърът не трябва да поставя името си след „:“, той може да предостави каквото иска. * Трябва * да повторите точно това, което сървърът е казал, с изключение на използването на PONG.

Разработете IRC бот Стъпка 10
Разработете IRC бот Стъпка 10

Стъпка 7. Присъединете се към вашите канали

Добре, значи имаме бот, който се свързва с мрежата и отговаря на пингове, но иначе не прави нищо. За да могат хората да виждат и използват вашия бот, той трябва да е в канал (в противен случай ще трябва да му кажете, за да отговаря на лични съобщения).

  • За да направим това, ще проверим за кодове на състоянието на сървъра 376 или 422. 376 означава, че MOTD (съобщението на деня) е приключило. 422 означава, че няма MOTD за изпращане. Този MOTD е просто нещо, което сървърът изпраща, когато се свържете, но това е добър индикатор за това кога можем да започнем да се присъединяваме към канали.
  • Ще трябва да издадете команда JOIN. Тази команда може да бъде последвана от един или повече канали, разделени със запетая.
  • Забележете, че данните, които сървърът изпраща, са удобно разделени с интервали. По този начин можем да разделим данните и да ги препратим, използвайки индекс на масив.
Разработете IRC бот Стъпка 11
Разработете IRC бот Стъпка 11

Стъпка 8. Отговорете на съобщенията на канала

Сега за забавната част. Вашият бот се присъедини към канала, така че сега можете да го използвате за това, което искате. Нека създадем примерна команда, наречена @moo.

  • Обърнете внимание на отместването, където започват съобщенията (това се отнася както за каналите, така и за личните съобщения). Винаги е на едно и също място.
  • Можете да боравите с команди с интервали в тях, като съберете отново нарязаните данни ($ d). Това е извън обхвата на тази статия.
  • Ако целта е канал (като например #botters-test), тогава отговаряте на това. Ако това е лично съобщение, този бит ще бъде псевдоним на вашия бот! След това трябва да отговорите, като използвате псевдонима на изпращача, а не вашия (в противен случай ще си говорите сами и това е просто глупаво).
Разработете IRC бот Стъпка 12
Разработете IRC бот Стъпка 12

Стъпка 9. Разширете своя бот

Можете да добавите много нови функции, като използвате горната реализация. Има много други команди, които могат да бъдат издадени към мрежата IRC, като например управление на операциите, ритане и забрана, задаване на темата, сред много други функции.

Съвети

  • Можете да генерирате резултата от командата "/me", като префиксирате съобщенията си по следния начин:

    • PRIVMSG #канал: / 001ТЕКСТ текст тук / 001.
    • 001 означава ASCII символ 1 и ще бъде интерпретиран като такъв в PHP низ с двойни кавички. Като алтернатива можете да използвате

      chr (1)

    • извън низа.
  • Цветовете могат да бъдат създадени в съобщение чрез префикс „\ 003“(код ASCII 3), последван от номер за цвят. 0 = бяло, 1 = черно, 2 = синьо, 3 = зелено, 4 = червено […]. Вижте страницата на mIRC за повече цветове.
  • От учтивост, получете съгласието на собствениците на канали и IRC операторите, преди да пуснете бота си онлайн. Не всички мрежи и канали имат добре дошла политика към ботовете, дори тези с добро поведение.
  • Някои демони на IRC надхвърлят спецификациите на протокола и внедряват други функции. Ако го подготвяте за конкретна мрежа, със сигурност можете да се възползвате от тези функции, ако знаете за техния протокол. Ако искате вашият бот да бъде разгърнат в няколко мрежи, опитайте се да го поддържате в това, което е в RFC.

Препоръчано: