Jak vyvinout robota IRC: 12 kroků (s obrázky)

Obsah:

Jak vyvinout robota IRC: 12 kroků (s obrázky)
Jak vyvinout robota IRC: 12 kroků (s obrázky)

Video: Jak vyvinout robota IRC: 12 kroků (s obrázky)

Video: Jak vyvinout robota IRC: 12 kroků (s obrázky)
Video: Naše denc můvs🕺💃🤣 #czech #youtubeshorts #dance #dancevideo 2024, Duben
Anonim

Pokud jste byli na Internet Relay Chat (IRC), je pravděpodobné, že jste v určitém okamžiku narazili na robota. Boti jsou nezávislé programy nebo skripty, které se připojují k síti stejným způsobem, jako by to dělal člověk. Lze je naprogramovat tak, aby reagovaly na uživatelské příkazy nebo dokonce chatovaly. V této příručce můžete zjistit, jaké máte možnosti pro sestavení robota IRC a jak jej postavit od začátku.

Kroky

Metoda 1 ze 2: Vyhodnocení možností

Vyvinutí robota IRC Krok 1
Vyvinutí robota IRC Krok 1

Krok 1. Zvažte instalaci klientského skriptu

Někdy prostě chcete udělat jednoduchý úkol a nechcete, aby to byl nezávislý program. V takovém případě můžete ke klientovi IRC připojit skript. To je docela běžné u mIRC, který má robustní skriptovací engine a širokou škálu dostupných skriptů. Toto je nejjednodušší možnost a je velmi doporučeno, pokud nemáte mnoho nebo žádné zkušenosti s programováním. Pro zbytek této příručky vyžadují pokyny určité znalosti počítačového programování, které je třeba dodržovat.

Krok 2: Vyvolejte robota IRC
Krok 2: Vyvolejte robota IRC

Krok 2. Zvažte již existující základnu kódů pro svého robota

Existuje mnoho open source a bezplatných programů, které vám pomohou rychle nastavit vlastního přizpůsobeného robota. Jedním z takových příkladů je Eggdrop, nejstarší robot IRC, který je stále udržován.

Vyvinutí robota IRC Krok 3
Vyvinutí robota IRC Krok 3

Krok 3. Zvažte napsání vlastního robota

Pro pokročilé uživatele a vývojáře IRC, kteří se již v programovacím jazyce vyznají, je to skvělá volba. Můžete používat téměř jakýkoli požadovaný jazyk, pokud má podporu soketu, ale mezi oblíbené patří Python, Lua, PHP, C a Perl. Pokud nic z toho neznáte, ale znáte jiný jazyk, není to problém. Na webu obvykle najdete příklady v libovolném jazyce. V tomto článku si ukážeme použití PHP. Chcete-li používat PHP, musíte mít na svém počítači nebo serveru nainstalován PHP-CLI.

  • PHP lze stáhnout z php.net
  • Skripty PHP lze spouštět z příkazového řádku. Další informace a pomoc s používáním PHP naleznete na této stránce manuálu PHP.

Metoda 2 ze 2: Vývoj vlastního robota

Vyvinutí robota IRC Krok 4
Vyvinutí robota IRC Krok 4

Krok 1. Shromážděte podrobnosti o připojení

K úspěšnému připojení k síti budete potřebovat následující informace.

  • Server: Název domény serveru použitého k připojení k IRC, jako například

    chat.freenode.net

  • Přístav: Ve většině případů je to 6667, ale pokud si nejste jisti, zkontrolujte svého vlastního klienta IRC nebo webovou stránku sítě.
  • Přezdívka: Přezdívka, kterou by měl váš robot používat. Mějte na paměti, že některé speciální znaky obvykle nejsou povoleny (@#! ~).
  • Ident: Pole identity se objeví za přezdívkou, když někdo provádí WHOIS takto:

    přezdívka! ident@jméno hostitele

  • GECOS: Toto pole obvykle obsahuje skutečné jméno uživatele nebo obecný popis robota, ale můžete tam vložit co chcete.
  • Kanál: Obvykle chcete, aby byl váš robot přítomen v jednom nebo více kanálech. Ve většině sítí mají předponu '#', ale může to být něco jiného.
Vyvinutí robota IRC, krok 5
Vyvinutí robota IRC, krok 5

Krok 2. Inicializujte konfiguraci ve svém skriptu

Nejzákladnějším způsobem, jak toho dosáhnout, je pojmenování několika proměnných podle výše uvedených názvů konfigurace. Můžete je také uložit do konfiguračního souboru a analyzovat je, ale prozatím se budeme držet pouze nezbytných potřeb.

Vyvinutí robota IRC, krok 6
Vyvinutí robota IRC, krok 6

Krok 3. Připojte se k síti

Chcete -li to provést, musíte na zadaném portu otevřít soket serveru. V této části byste měli také přidat nějaký kód pro zpracování chyb v případě, že se připojení z jakéhokoli důvodu nezdaří. V tomto případě nám PHP poskytuje několik úhledných funkcí pro efektivní zpracování chyby.

Vyvinutí robota IRC, krok 7
Vyvinutí robota IRC, krok 7

Krok 4. Zaregistrujte svého robota

To znamená, že na server zadáte svou přezdívku, identitu a GECOS, aniž byste se zaregistrovali u NickServ. Chcete -li to provést, stačí napsat příkazy NICK a USER na server, následovat návrat na začátek řádku a nový řádek. Je nutné, abyste to udělali přesně podle obrázku, protože to je uvedeno v RFC1459, specifikaci pro protokol IRC.

Všimněte si, že musí být zadány prostřední dva parametry (v tomto případě * a 8), ale jsou serverem ignorovány. Tyto dva se používají pouze mezi propojenými servery, nikoli přímo připojeným klientem

Vyvinutí robota IRC, krok 8
Vyvinutí robota IRC, krok 8

Krok 5. Pokračujte v načítání dat ze soketu pomocí smyčky

Pokud byste nepoužili smyčku, váš skript by se okamžitě ukončil a robot by byl v podstatě k ničemu. Abyste zůstali připojeni, musíte načíst data ze serveru, zkontrolovat jakýkoli vstup v požadovaném streamu a pokud ano, odpovědět na něj. Zde sbíráme data pomocí socket_read (), abychom získali jakákoli data, která máme k dispozici. Pokud existuje, pokračujeme v tom, co je ve smyčce. Může být užitečné také odeslat nezpracovaná data do konzoly, abyste mohli vidět, co se děje z pohledu robota.

Vyvinutí robota IRC, krok 9
Vyvinutí robota IRC, krok 9

Krok 6. Napište obslužný program ping

Toto je důležité. Pokud na pingy nereagujete včas, server vás odpojí. Pojďme se o to nejprve postarat. Pingy po odeslání ze serveru vypadají takto:

PING: rajaniemi.freenode.net

. Server nemusí uvádět své jméno za ':', může dodat, co chce. * Musíte * zopakovat přesně to, co řekl server, kromě použití PONG.

Vyvinutí robota IRC, krok 10
Vyvinutí robota IRC, krok 10

Krok 7. Připojte se ke svým kanálům

Dobře, takže máme robota, který se připojuje k síti a reaguje na pingy, ale jinak nedělá nic. Aby lidé viděli a používali vašeho robota, měl by být v kanálu (jinak byste mu museli říct, aby odpovídal na soukromé zprávy).

  • Za tímto účelem zkontrolujeme stavové kódy serveru 376 nebo 422. 376 znamená, že MOTD (zpráva dne) skončila. 422 znamená, že nebyl odeslán žádný MOTD. Že MOTD je něco, co server odešle, když se připojíte, ale je to dobrý indikátor, kdy můžeme začít spojovat kanály.
  • Budete muset zadat příkaz JOIN. Za tímto příkazem může následovat jeden nebo více kanálů oddělených čárkou.
  • Všimněte si, že data, která server odesílá, jsou vhodně oddělena mezerami. Tímto způsobem můžeme data rozdělit a odkazovat na ně pomocí indexu pole.
Vyvinutí robota IRC, krok 11
Vyvinutí robota IRC, krok 11

Krok 8. Reagujte na zprávy kanálu

Nyní k zábavné části. Váš robot se připojil ke kanálu, takže jej nyní můžete použít k tomu, co jste chtěli. Vytvořme příklad příkazu s názvem @moo.

  • Všimněte si posunu, kde zprávy začínají (to platí pro kanály i soukromé zprávy). Vždy je na stejném místě.
  • Příkazy s mezerami v nich můžete zpracovat tak, že spojíte seskupená data zpět dohromady ($ d). To je mimo rozsah tohoto článku.
  • Pokud je cílem kanál (například #botters-test), odpovíte na to. Pokud se jedná o soukromou zprávu, bude tento bit přezdívkou vašeho robota! Poté musíte odpovědět pomocí přezdívky odesílatele, ne vaší (jinak byste mluvili sami se sebou, a to je prostě hloupé).
Vyvinutí robota IRC, krok 12
Vyvinutí robota IRC, krok 12

Krok 9. Rozšiřte svého robota

Pomocí výše uvedené implementace můžete přidat mnoho nových funkcí. Do sítě IRC lze vydávat mnoho dalších příkazů, například správu operací, kopání a banování, nastavení tématu a mnoho dalších funkcí.

Tipy

  • Výsledek příkazu "/me" můžete vytvořit tak, že své zprávy předponujete takto:

    • PRIVMSG #channel: / 001ACTION text zde / 001.
    • 001 znamená ASCII znak 1 a bude takto interpretován ve dvojitém řetězci PHP. Alternativně můžete použít

      chr (1)

    • mimo řetězec.
  • Barvy lze ve zprávě vytvořit předponou „\ 003“(kód ASCII 3) následovanou číslem barvy. 0 = bílá, 1 = černá, 2 = modrá, 3 = zelená, 4 = červená […]. Více barev najdete na stránce mIRC.
  • Před zdvořilostí si před uvedením svého robota online vyžádejte souhlas vlastníků kanálů a operátorů IRC. Ne všechny sítě a kanály mají vůči robotům vítanou politiku, dokonce i slušně vychované.
  • Někteří IRC démoni jdou nad rámec specifikací protokolu a implementují další funkce. Pokud jej používáte pro konkrétní síť, můžete tyto funkce určitě využít, pokud víte o jejich protokolu. Pokud však chcete, aby byl váš robot nasazen v několika sítích, zkuste jej zachovat podle toho, co je v RFC.

Doporučuje: