Jak stworzyć bota IRC: 12 kroków (ze zdjęciami)

Spisu treści:

Jak stworzyć bota IRC: 12 kroków (ze zdjęciami)
Jak stworzyć bota IRC: 12 kroków (ze zdjęciami)

Wideo: Jak stworzyć bota IRC: 12 kroków (ze zdjęciami)

Wideo: Jak stworzyć bota IRC: 12 kroków (ze zdjęciami)
Wideo: Przekazywanie (automatyczne) e-maili na kontach Google 2024, Kwiecień
Anonim

Jeśli byłeś na czacie IRC (Internet Relay Chat), istnieje duże prawdopodobieństwo, że w pewnym momencie natknąłeś się na bota. Boty to niezależne programy lub skrypty, które łączą się z siecią w taki sam sposób, jak zrobiłby to człowiek. Można je zaprogramować tak, aby odpowiadały na polecenia użytkownika, a nawet czatowały. W tym przewodniku dowiesz się, jakie masz opcje budowania bota IRC, a także jak zbudować go od zera.

Kroki

Metoda 1 z 2: Ocena opcji

Stwórz bota IRC Krok 1
Stwórz bota IRC Krok 1

Krok 1. Rozważ zainstalowanie skryptu klienta

Czasami chcesz po prostu wykonać proste zadanie i nie chcesz, aby był to niezależny program. W takim przypadku możesz dołączyć skrypt do klienta IRC. Jest to dość powszechne w przypadku mIRC, który ma solidny silnik skryptowy i szeroką gamę dostępnych skryptów. Jest to najłatwiejsza opcja i wysoce zalecana, jeśli nie masz dużego doświadczenia w programowaniu. W pozostałej części tego przewodnika instrukcje wymagają znajomości programowania komputerowego.

Stwórz bota IRC Krok 2
Stwórz bota IRC Krok 2

Krok 2. Rozważ istniejącą wcześniej bazę kodu dla swojego bota

Istnieje wiele programów typu open source i bezpłatnych programów, które mogą pomóc w szybkim skonfigurowaniu własnego dostosowanego bota. Jednym z takich przykładów jest Eggdrop, najstarszy wciąż utrzymywany bot IRC.

Stwórz bota IRC Krok 3
Stwórz bota IRC Krok 3

Krok 3. Rozważ napisanie własnego bota

Dla zaawansowanych użytkowników IRC i programistów, którzy już znają język programowania, jest to świetna opcja. Możesz używać praktycznie dowolnego języka, o ile obsługuje on gniazda, ale popularne są języki Python, Lua, PHP, C i Perl. Jeśli nie znasz żadnego z nich, ale znasz inny język, nie stanowi to problemu. Zazwyczaj możesz znaleźć przykłady w Internecie w dowolnym języku. W tym artykule zademonstrujemy użycie PHP. Aby używać PHP, musisz mieć zainstalowany PHP-CLI na swoim komputerze lub serwerze.

  • PHP można pobrać z php.net
  • Skrypty PHP można wykonywać z wiersza poleceń. Dodatkowe informacje i pomoc w używaniu PHP znajdziesz na tej stronie podręcznika PHP.

Metoda 2 z 2: Tworzenie własnego bota

Stwórz bota IRC Krok 4
Stwórz bota IRC Krok 4

Krok 1. Zbierz szczegóły połączenia

Aby pomyślnie połączyć się z siecią, musisz uzyskać następujące informacje.

  • serwer: Nazwa domeny serwera używanego do łączenia się z IRC, na przykład

    chat.freenode.net

  • Port: W większości przypadków jest to 6667, ale jeśli nie jesteś pewien, sprawdź swojego klienta IRC lub stronę internetową sieci.
  • Przezwisko: Pseudonim, którego powinien używać Twój bot. Pamiętaj, że niektóre znaki specjalne są zwykle niedozwolone (@#!~).
  • Tożsamość: Pole ident pojawia się po pseudonimie, gdy ktoś wykonuje WHOIS w ten sposób:

    pseudonim!ident@hostname

  • GECOS: To pole zwykle zawiera prawdziwe imię i nazwisko użytkownika lub ogólny opis bota, ale możesz tam umieścić, co chcesz.
  • Kanał: Zazwyczaj chcesz, aby Twój bot był obecny w jednym lub kilku kanałach. W większości sieci są one poprzedzone „#”, ale może to być coś innego.
Stwórz bota IRC Krok 5
Stwórz bota IRC Krok 5

Krok 2. Zainicjuj konfigurację w skrypcie

Najbardziej podstawowym sposobem na to jest nazwanie kilku zmiennych zgodnie z powyższymi nazwami konfiguracji. Możesz także przechowywać je w pliku konfiguracyjnym i analizować, ale na razie pozostaniemy przy absolutnych potrzebach.

Opracuj bota IRC Krok 6
Opracuj bota IRC Krok 6

Krok 3. Połącz się z siecią

Aby to zrobić, musisz otworzyć gniazdo do serwera na określonym porcie. Powinieneś również dodać kod obsługi błędów w tej części na wypadek, gdyby połączenie nie powiodło się z jakiegokolwiek powodu. W tym przypadku PHP dostarcza nam kilka zgrabnych funkcji do efektywnej obsługi błędu.

Opracuj bota IRC Krok 7
Opracuj bota IRC Krok 7

Krok 4. Zarejestruj swojego bota

Oznacza to dostarczenie na serwer swojego nicka, identyfikatora i GECOS, a nie rejestrację w NickServ. Aby to zrobić, po prostu napisz do serwera polecenia NICK i USER, po których następuje powrót karetki i znak nowej linii. Konieczne jest, abyś zrobił to dokładnie tak, jak pokazano, ponieważ tak jest to określone w RFC1459, specyfikacji protokołu IRC.

Zauważ, że dwa środkowe parametry (w tym przypadku * i 8) muszą być określone, ale są one ignorowane przez serwer. Te dwa są używane tylko między połączonymi serwerami, a nie przez bezpośrednio łączącego się klienta

Stwórz bota IRC Krok 8
Stwórz bota IRC Krok 8

Krok 5. Kontynuuj pobieranie danych z gniazda za pomocą pętli

Jeśli nie użyjesz pętli, twój skrypt natychmiast się zakończy, a bot będzie w zasadzie bezużyteczny. Aby pozostać w kontakcie, musisz pobrać dane z serwera, sprawdzić dane wejściowe w wybranym strumieniu i odpowiedzieć na nie, jeśli tak. Tutaj pobieramy dane za pomocą socket_read(), aby pobrać dowolne dostępne dla nas dane. Jeśli tak, kontynuujemy robienie tego, co jest w pętli. Pomocne może być również wyprowadzenie surowych danych do konsoli, dzięki czemu można zobaczyć, co się dzieje z perspektywy bota.

Stwórz bota IRC Krok 9
Stwórz bota IRC Krok 9

Krok 6. Napisz procedurę obsługi pingów

To jest ważne. Jeśli nie odpowiesz na pingi w odpowiednim czasie, serwer Cię rozłączy. Zajmijmy się tym najpierw. Po wysłaniu z serwera pingi wyglądają tak:

PING: rajaniemi.freenode.net

. Serwer nie musi umieszczać swojej nazwy po ':', może dostarczyć co tylko chce. *Musisz* powtórzyć dokładnie to, co powiedział serwer, z wyjątkiem użycia PONG.

Stwórz bota IRC Krok 10
Stwórz bota IRC Krok 10

Krok 7. Dołącz do swoich kanałów

Ok, więc mamy bota, który łączy się z siecią i odpowiada na pingi, ale poza tym nic nie robi. Aby ludzie widzieli i używali twojego bota, powinien on znajdować się na kanale (w przeciwnym razie musiałbyś mu powiedzieć, aby odpowiadał na prywatne wiadomości).

  • Aby to zrobić, sprawdzimy kody stanu serwera 376 lub 422. 376 oznacza zakończenie MOTD (wiadomość dnia). 422 oznacza, że nie było żadnego MOTD do wysłania. To MOTD to tylko coś, co serwer wysyła po połączeniu, ale jest to dobry wskaźnik, kiedy możemy zacząć dołączać do kanałów.
  • Będziesz musiał wydać polecenie JOIN. Po tym poleceniu może następować jeden lub więcej kanałów oddzielonych przecinkiem.
  • Zwróć uwagę, że dane wysyłane przez serwer są dogodnie oddzielone spacjami. W ten sposób możemy podzielić dane i odwołać się do nich za pomocą indeksu tablicy.
Stwórz bota IRC Krok 11
Stwórz bota IRC Krok 11

Krok 8. Odpowiadaj na wiadomości z kanału

Teraz czas na zabawną część. Twój bot dołączył do kanału, więc teraz możesz go używać do tego, co chcesz. Stwórzmy przykładowe polecenie o nazwie @moo.

  • Zwróć uwagę na przesunięcie, w którym zaczynają się wiadomości (dotyczy to zarówno kanałów, jak i wiadomości prywatnych). Jest zawsze w tym samym miejscu.
  • Możesz obsługiwać polecenia ze spacjami, łącząc podzielone dane z powrotem ($d). To wykracza poza zakres tego artykułu.
  • Jeśli celem jest kanał (np. #botters-test), odpowiadasz na niego. Jeśli jest to wiadomość prywatna, ten bit będzie pseudonimem Twojego bota! Musisz wtedy odpowiedzieć, używając pseudonimu nadawcy, a nie swojego (w przeciwnym razie rozmawiałbyś ze sobą, a to po prostu głupie).
Stwórz bota IRC Krok 12
Stwórz bota IRC Krok 12

Krok 9. Rozszerz swojego bota

Korzystając z powyższej implementacji, możesz dodać wiele nowych funkcji. Istnieje wiele innych poleceń, które można wydać w sieci IRC, takich jak zarządzanie operacjami, wyrzucanie i banowanie, ustawianie tematu i wiele innych funkcji.

Porady

  • Możesz uzyskać wynik polecenia "/me", poprzedzając swoje wiadomości w ten sposób:

    • PRIVMSG #kanał:\001Akcja tutaj\001.
    • 001 oznacza znak ASCII 1 i będzie interpretowany jako taki w łańcuchu PHP z podwójnym cudzysłowem. Alternatywnie możesz użyć

      chr(1)

    • poza ciągiem.
  • Kolory mogą być tworzone w wiadomości poprzez przedrostek „\003” (kod ASCII 3), a następnie numer koloru. 0 = biały, 1 = czarny, 2 = niebieski, 3 = zielony, 4 = czerwony […]. Więcej kolorów znajdziesz na stronie mIRC.
  • W ramach grzeczności uzyskaj zgodę właścicieli kanałów i operatorów IRC przed udostępnieniem bota online. Nie wszystkie sieci i kanały mają mile widzianą politykę wobec botów, nawet tych dobrze wychowanych.
  • Niektóre demony IRC wykraczają poza specyfikacje protokołu i implementują inne funkcje. Jeśli przygotowujesz go do konkretnej sieci, z pewnością możesz skorzystać z tych funkcji, jeśli znasz ich protokół. Jeśli jednak chcesz, aby Twój bot był wdrożony w kilku sieciach, staraj się zachować to, co jest w RFC.

Zalecana: