IRC bot

IRC bot – zbiór skryptów lub niezależny program, który działa w sieci IRC. Jest to program, który wykonuje automatycznie pewne akcje np.: dodawanie operatorów, wyrzucanie użytkowników z kanału, automatyczne odpowiadanie na rozmaite pytania a nawet prowadzenie gier i konkursów przeprowadzanych na kanałach IRC.

Prawdopodobnie pierwszym IRC botem był GM, napisany przez operatora IRC Servera Grega Lindahla, posługującego się pseudonimem "Wumpus". GM grał w grę o nazwie Hunt the Wumpus z użytkownikami na kanale "#Wumpus". Współcześnie boty służą przede wszystkim do nadzorowania kanałów, w sieciach które nie oferują serwisu ich rejestrowania. W sieciach z serwisami można spotkać boty oferujące rozmaite dodatkowe usługi, takie jak tworzenie baz danych użytkowników, zbieranie statystyk kanałowych, prowadzenie gier i quizów, dostarczanie rozmaitych informacji, prowadzenie konwersacji i wiele innych usług.

Boty od strony funkcji jakie spełniają można podzielić na:

  • infoboty - gromadzące i później udostępniające rozmaite informacje, np. boty zbierające i udostępniające dane statystyczne na temat kanału, boty tworzące bazy danych użytkowników itp.
  • boty usługowo-specjalistyczne - które zazwyczaj są rodzajem łącznika między rozbudowanymi programami a określonym kanałem IRC; typowy przykład to chatbot Eliza, poprzez którego można prowadzić konwersację ze słynnym programem Eliza udającym człowieka
  • boty "rozrywkowe" - boty do przeprowadzania quizów, gier, boty z bibliotekami żartów itp.
  • boty "serwery plików" - spełniające rolę ircowych serwerów FTP - udostępniające publicznie lub tylko dla wybranych zasoby plików multimedialnych lub warezu, zazwyczaj poprzez DCC
  • boty "nadzorcy" - najczęściej spotykane - służą do ochrony i pilnowania porządku na kanałach.


Infoboty

[edytuj | edytuj kod]

Prawzorem wszystkich infobotów był bot o nazwie url, który gromadził adresy stron WWW a następnie podawał je na kanał po zadaniu na kanale odpowiedniego pytania. Np: chcąc aby url zapamiętał adres Wikipedii należało napisać:

wikipedia is http://pl.wikipedia.org

na co bot odpowiadał:

The Infobot at this point silently remembers the statement

po czym przy każdym pojawieniu się w czyjejś wypowiedzi słowa "wikipedia" ze znakiem zapytania otrzymuje się odpowiedź:

somebody said wikipedia is http://pl.wikipedia.org/

Bardzo często spotykanymi infobotami są boty gromadzące informacje o użytkownikach kanału, zwane seenami (od seen - widziałem). Rejestrują one wejścia wszystkich użytkowników oraz to kiedy ostatni raz coś powiedzieli na kanale. Później można im zadawać pytania pisząc na kanale:

!seen Nick

na co się otrzymuje odpowiedź w rodzaju:

Nick was here 7 hrs 31 min ago

albo

I don't know nick

albo

Nick is here now, don't U see it?

Jednym z najbardziej rozwiniętych infobotów jest blootbot tworzony przez zespół pod kierownictwem Tima Rikera. Bot ten w zależności od konfiguracji może być nauczony gromadzenia wielu różnych danych oraz automatycznego przetwarzania prostych pytań na zapytania SQL kierowane do określonej bazy danych MySQL, na podstawie czego formułuje on określoną odpowiedź w języku naturalnym.

Boty jako nadzorcy kanałów

[edytuj | edytuj kod]

Boty do nadzorowania kanałów są powszechnie w sieciach IRC, w których nie ma serwisu umożliwiającego rejestrację kanału. Aby utrzymać kanał zazwyczaj nie wystarcza jeden bot i dlatego zestawia się je w skoordynowane sieci zwane botnetami. Boty działające w ramach jednego botnetu automatycznie się nawzajem wspierają co zmniejsza ryzyko, że ktoś przejmie kontrolę nad nadzorowanym kanałem IRC.

Początkowo (mniej więcej do 1994 r.) większość botów nadzorujących kanały IRC była unikatowymi programami pisanymi w różnych językach programowania. Każdy z botów posiadał własne cechy, które odróżniały go od innych. Napisanie ciekawego bota stanowiło rodzaj nobilitacji w światku programistów interesujących się IRC. Era "indywidualnych" botów-nadzorców dość szybko jednak się skończyła, gdyż okazało się, że prawie wszystkie one wykonują bardzo podobne zadania. Wydawało się więc sensowne napisanie uniwersalnego programu, który można by dowolnie konfigurować w taki sposób aby wykonywał on wszystkie niezbędne akcje oczekiwane od tego rodzaju bota. Najbardziej popularnym tego rodzaju programem stał się Eggdrop napisany przez Robeya Pointera i Jamie Rishaw w 1993 r.

Po roku 1996 powstało wiele mutacji Eggdropa posiadających rozmaite udogodnienia, które do dzisiaj są najbardziej popularną odmianą botów nadzorujących kanały. Inne boty mniej lub bardziej podobne do Eggdropa to:

  • Windrop – mutacja Eggdropa, działająca pod systemem MS Windows
  • VoiD – legendarny klon Eggdropa z poprawioną funkcjonalnością i lepiej zabezpieczony przed atakami
  • ghost – inna mutacja Eggdropa, nastawiona na kontrolę kanału, podobna nieco do Voida
  • EnergyMech – napisany w C o podobnej funkcjonalności, co Eggdrop, nie ma jednak możliwości zestawiania hierarchicznego botnetu, a tylko wewnętrzny DCC chat, bez możliwości centralnego sterowania całym botnetem – nie ma też możliwości dynamicznego włączania i wyłączania skryptów
  • Supybot – napisany w języku Python – posiada szereg typowych funkcji nadzorczych, ale jest bardziej nastawiony na przyjazność i łatwość w obsłudze oraz możliwość dodawania wtyczek niż na kwestie bezpieczeństwa – działa w każdym systemie operacyjnym, w którym da się zainstalować interpreter Pythona.

Lista popularnych botów IRC

[edytuj | edytuj kod]
blootbot
infobot o szerokich możliwościach współpracy z MySQL
Botnix
napisany w perlu bot nadzorca przystosowany do pracy z IPv6, posiada m.in. moduł pozwalający przekształcić go w klona Elizy - nie obsługuje botnetów
ComBOT
rodzaj infobota umożliwiającego przeszukiwanie stron WWW przez komendy wydawne na kanale IRC lub na query
Darkbot
gadatliwy bot, potrafiący prowadzić rodzaj konwersacji, odpowiadać na pytania zebrane w bibliotece FAQów, posiada także elementarne funkcje potrzebne do nadzorowania kanału - napisany w C - działa pod Windowsami i Linuksem
Mozbot
napisany w perlu - bot usługowy stworzony na potrzeby społeczności projektów Mozilli - przekazuje strumień informacji z bugzilli, potrafi na różne sposoby przeszukiwać strony WWW i przekazywać na kanał rezultaty oraz posiada podstawowe funkcje potrzebne do nadzorowania kanału
YB-Bot
podobny do Darkbota - posiada funkcję seen, odpowiadanie na pytania z listy FAQ oraz podstawowe narzędzia do nadzoru nad kanałem
Erbot
bot napisany w Emacs Lisp, uruchamiany z poziomu Emacsa. Jest bardzo rozbudowany, pozwala na dodawanie funkcji w czasie rzeczywistym. Obsługuje uczenie się, tak jak url

Bibliografia

[edytuj | edytuj kod]

Linki zewnętrzne

[edytuj | edytuj kod]