Как да разработите IRC бот

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



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

  1. един Помислете за инсталиране на клиентски скрипт. Понякога просто искате да направите проста задача и не искате тя да бъде независима програма. В този случай можете да прикачите скрипт към IRC клиент. Това е доста често срещано mIRC , който има стабилен скриптов механизъм и голямо разнообразие от налични скриптове. Това е най-лесният вариант и силно препоръчителен, ако нямате много или никакъв опит в програмирането. В останалата част на това ръководство инструкциите изискват известни познания по компютърно програмиране, които да се следват.
  2. 2 Помислете за съществуваща кодова база за вашия бот. Съществуват много програми с отворен код и безплатни програми, които могат да ви помогнат да настроите своя персонализиран бот бързо. Един такъв пример е Eggdrop , най-старият IRC бот, който все още се поддържа.
  3. 3 Помислете за писане на собствен бот. За напреднали потребители и разработчици на IRC, които вече познават своя език за програмиране, това е чудесна възможност. Можете да използвате почти всеки език, който искате, стига да има поддръжка на сокети, но популярните, които да използвате, включват Python, Lua, PHP, C и Perl. Ако не знаете нито едно от тях, но знаете друг език, това не е проблем. Обикновено можете да намерите примери в мрежата на всеки език, който искате. За тази статия ще демонстрираме използването на PHP. За да използвате PHP, ще трябва да имате инсталиран PHP-CLI на вашия компютър или сървър.Реклама

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

  1. един Съберете подробностите за връзката. За да се свържете успешно с мрежата, ще трябва да получите следната информация.
    • Сървър : Името на домейна на сървъра, използван за свързване с IRC, като chat.freenode.net
    • Порт : В повечето случаи това е 6667, но ако не сте сигурни, проверете вашия собствен IRC клиент или уебсайта на мрежата.
    • Псевдоним : Псевдонимът, който трябва да използва вашият бот. Имайте предвид, че някои специални знаци обикновено не са разрешени (@ #! ~).
    • Идентичност : Полето ident се появява след псевдонима, когато някой изпълни WHOIS като този: nickname!ident@hostname
    • GECOS : Това поле обикновено съдържа истинското име на потребителя или общо описание на бота, но можете да поставите там каквото искате.
    • Канал : Обикновено искате ботът ви да присъства в един или повече канали. В повечето мрежи те имат префикс „#“, но може да е нещо друго.
  2. 2 Инициализирайте конфигурацията във вашия скрипт. Най-основният начин да направите това е чрез именуване на няколко променливи според имената на конфигурацията по-горе. Можете също така да ги съхранявате в конфигурационен файл и да ги анализирате, но засега просто ще се придържаме към абсолютните нужди.
  3. 3 Свържете се с мрежата. За да направите това, ще трябва да отворите сокет към сървъра на посочения порт. Трябва също да добавите малко код за обработка на грешки в тази част, в случай че връзката се провали поради някаква причина. В този случай PHP ни предоставя някои добри функции за ефективно справяне с грешката.
  4. 4 Регистрирайте своя бот. Това означава да предоставите своя псевдоним, ident и GECOS на сървъра, не регистриране в NickServ. За да направите това, просто напишете командите NICK и USER на сървъра, последвани от връщане на карета и нов ред. Задължително е да го правите точно както е показано, защото така е посочено в RFC1459, спецификацията за протокола IRC.
    • Имайте предвид, че средните два параметъра (в този случай * и 8) трябва да бъдат посочени, но те се игнорират от сървъра. Тези две се използват само между свързани сървъри, а не от директно свързващ се клиент.
  5. 5 Продължавайте да извличате данни от сокета с помощта на цикъл. Ако не сте използвали цикъл, вашият скрипт незабавно би прекратил и ботът би бил безполезен. За да поддържате връзка, трябва да извлечете данни от сървъра, да проверите за вход в потока, който искате, и да отговорите на него, ако е така. Тук извличаме данни с помощта на socket_read (), за да вземем всички налични за нас данни. Ако има, продължаваме да правим всичко, което е в цикъл. Може да е полезно да изведете и суровите данни на конзолата, за да можете да видите какво се случва от гледна точка на бота.
  6. 6 Напишете пинг манипулатор. Това е важно. Ако не отговорите своевременно на пинг, сървърът ще ви прекъсне. Нека първо се погрижим за това. Пинговете изглеждат така, когато се изпращат от сървъра: PING :rajaniemi.freenode.net. Сървърът не трябва да поставя името си след ':', той може да предостави каквото поиска. Трябва * да * повторите точно това, което сървърът е казал, с изключение на използването на PONG.
  7. 7 Присъединете се към вашите канали. Добре, така че имаме бот, който се свързва към мрежата и отговаря на пинг, но в противен случай не прави нищо. За да могат хората да виждат и използват вашия бот, той трябва да е в канал (в противен случай ще трябва да му кажете да отговаря на лични съобщения).
    • За да направим това, ще проверим кодовете на състоянието на сървъра 376 или 422. 376 означава, че MOTD (съобщението на деня) е приключило. 422 означава, че няма MOTD за изпращане. Това MOTD е просто нещо, което сървърът изпраща, когато се свържете, но това е добър индикатор за това кога можем да започнем да се присъединяваме към канали.
    • Ще трябва да издадете команда JOIN. Тази команда може да бъде последвана от един или повече канали, разделени със запетая.
    • Забележете, че данните, които сървърът изпраща, са удобно разграничени с интервали. По този начин можем да разделим данните и да ги препращаме с помощта на индекс на масив.
  8. 8 Отговорете на съобщения в канала. Сега за забавната част. Вашият бот се присъедини към канала, така че сега можете да го използвате за това, което искате. Нека създадем примерна команда, наречена @moo.
    • Обърнете внимание на отместването, когато започват съобщенията (това се отнася както за каналите, така и за личните съобщения). Винаги е на едно и също място.
    • Можете да обработвате команди с интервали в тях, като снаждате събраните данни обратно ($ d). Това е извън обхвата на тази статия.
    • Ако целта е канал (като # botters-test), вие отговаряте на това. Ако е частно съобщение, този бит ще бъде псевдонимът на вашия бот! След това трябва да отговорите, като използвате псевдонима на подателя, а не вашия (в противен случай ще говорите със себе си и това е просто глупаво).
  9. 9 Удължете бота си. Можете да добавите много нови функции, използвайки горното изпълнение. Има много други команди, които могат да бъдат подадени към IRC мрежата, като управление на операционни системи, ритане и забрана, настройване на темата, наред с много други функции. Реклама

Въпроси и отговори на общността

Търсене Добавете нов въпрос
  • Въпрос След като ги добавя в notepad +, къде да добавя тези кодове? летящи 8lack Поставете ги на уеб сървър (като Apache), който поддържа PHP. Можете да инсталирате XXAMP на вашия локален компютър или да ги хоствате на уеб сървъра на прашника.
Задайте въпрос Остават 200 знака Включете вашия имейл адрес, за да получите съобщение, когато отговорите на този въпрос. Изпращане
Реклама

Съвети

  • Можете да създадете резултата от командата '/ me', като поставите вашите съобщения като префикс:
    • PRIVMSG #channel: 001ДЕЙСТВИЕ текст тук 001 .
    • 001 означава ASCII символ 1 и ще бъде интерпретиран като такъв в PHP низ с двойни кавички. Като алтернатива можете да използвате chr(1) извън низа.
  • Цветовете могат да бъдат получени в съобщение чрез префикс ' 003' (ASCII код 3), последван от число за цвят. 0 = бяло, 1 = черно, 2 = синьо, 3 = зелено, 4 = червено [...]. Вижте mIRC страница за повече цветове.
  • От учтивост, вземете съгласието на собствениците на канали и IRC операторите, преди да включите вашия бот онлайн. Не всички мрежи и канали имат политика на добре дошли към ботове, дори добре възпитани.
  • Някои демони на IRC надхвърлят спецификациите на протокола и прилагат други функции. Ако го подготвяте за конкретна мрежа, със сигурност можете да се възползвате от тези функции, ако знаете за техния протокол. Ако искате ботът ви да бъде разположен в няколко мрежи, опитайте се да го запазите до това, което е в RFC.

Реклама Изпратете съвет Всички изпратени съвети се преглеждат внимателно, преди да бъдат публикувани. Благодарим ви, че изпратихте съвет за преглед!

Популярни Въпроси

Това оценява четиримата играчи, които могат да детронират Федерер, за да вдигнат короната на Уимбълдън 2018.

Как да премахнете петна от цвекло. Премахването на петна от цвекло не е лесна задача, но добрата новина е, че има няколко домашни средства! Веднага след като се получи разливът, не забравяйте да го третирате незабавно със студена вода, за да предпазите петното от ...

Непобеденият щат Сан Диего получава огромен тест в щата Юта в събота. Ето как да гледате онлайн предаване на играта без кабел.

Как да отворите бутилка шампанско с меч. Удивете всички при следващата ви социална функция, като отворите бутилка шампанско (или някакво пенливо вино) с меч. Тази техника е известна още като „sabreing“ или „sabrage“. Научавайки се да ...

Единственият непобеден отбор в Ла Лига, Атлетико получава голям тест срещу Барселона в събота. Ето как можете да гледате пряко предаване на мача в САЩ.