Ako vyvinúť robota IRC?

Ak ste boli na Internet Relay Chat (IRC)
Ak ste boli na Internet Relay Chat (IRC), je pravdepodobné, že ste sa v určitom bode stretli s robotom.

Ak ste boli na Internet Relay Chat (IRC), je pravdepodobné, že ste sa v určitom bode stretli s robotom. Roboti sú nezávislé programy alebo skripty, ktoré sa k sieti pripájajú rovnakým spôsobom ako človek. Môžu byť naprogramované tak, aby reagovali na príkazy používateľa alebo dokonca na chat. V tejto príručke nájdete, aké máte možnosti pri stavaní robota IRC a ako ho postaviť úplne od začiatku.

Metóda 1 z 2: vyhodnotenie možností

  1. 1
    Zvážte inštaláciu klientskeho skriptu. Niekedy chcete jednoducho vykonať jednoduchú úlohu a nechcete, aby to bol nezávislý program. V takom prípade môžete ku klientovi IRC pripojiť skript. To je úplne bežné v prípade mIRC, ktorý má robustný skriptovací engine a širokú škálu dostupných skriptov. Je to najľahšia možnosť a dôrazne sa odporúča, ak nemáte veľa alebo žiadne skúsenosti s programovaním. Pokiaľ ide o zvyšok tejto príručky, pokyny vyžadujú dodržanie určitých znalostí počítačového programovania.
  2. 2
    Zvážte už existujúcu základňu kódov pre svojho robota. Existuje mnoho open source a bezplatných programov, ktoré vám môžu pomôcť rýchlo si nastaviť vlastného prispôsobeného robota. Jedným z takýchto príkladov je Eggdrop, najstarší robot IRC, ktorý sa stále udržiava.
  3. 3
    Zvážte napísanie vlastného robota. Pre pokročilých používateľov a vývojárov IRC, ktorí sa už v programovacom jazyku vyznajú, je to skvelá voľba. Môžete používať takmer akýkoľvek požadovaný jazyk, pokiaľ má podporu soketu, ale medzi obľúbené jazyky patria Python, Lua, PHP, C a Perl. Ak neviete nič z toho, ale poznáte iný jazyk, nie je to problém. Na internete zvyčajne nájdete príklady v ľubovoľnom jazyku. V tomto článku si ukážeme používanie PHP. Ak chcete používať PHP, musíte mať vo svojom počítači alebo serveri nainštalovaný PHP-CLI.
    • PHP je možné stiahnuť z php.net
    • Skripty PHP je možné vykonávať z príkazového riadka. Ďalšie informácie a pomoc s používaním PHP nájdete na tejto stránke s manuálom PHP.
Najstarší robot IRC
Jedným z takýchto príkladov je Eggdrop, najstarší robot IRC, ktorý sa stále udržiava.

Metóda 2 z 2: vývoj vlastného robota

  1. 1
    Zhromaždite podrobnosti o pripojení. Na úspešné pripojenie k sieti budete potrebovať nasledujúce informácie.
    • Server: Názov domény servera používaného na pripojenie k IRC, ako napríkladchat.freenode.net
    • Port: Vo väčšine prípadov je to 6667, ale ak si nie ste istí, skontrolujte vlastného klienta IRC alebo webovú stránku siete.
    • Prezývka: Prezývka, ktorú by mal používať váš robot. Majte na pamäti, že niektoré špeciálne znaky zvyčajne nie sú povolené (@#! ~).
    • Ident: Pole ident sa zobrazí za prezývkou, keď niekto vykonáva WHOIS takto:nickname!ident@hostname
    • GECOS: Toto pole zvyčajne obsahuje skutočné meno používateľa alebo všeobecný popis robota, ale môžete tam vložiť čokoľvek chcete.
    • Kanál: Obvykle chcete, aby bol váš robot prítomný v jednom alebo viacerých kanáloch. Vo väčšine sietí majú predponu „#“, ale môže to byť aj niečo iné.
  2. 2
    Inicializujte konfiguráciu vo svojom skripte. Najzákladnejším spôsobom, ako to dosiahnuť, je pomenovanie niekoľkých premenných podľa vyššie uvedených názvov konfigurácií. Môžete ich tiež uložiť do konfiguračného súboru a analyzovať ich, ale zatiaľ sa budeme držať iba nevyhnutných potrieb.
  3. 3
    Pripojte sa k sieti. Na to budete musieť otvoriť soket serveru na uvedenom porte. Do tejto časti by ste mali tiež pridať nejaký kód na spracovanie chýb v prípade, že sa pripojenie z akéhokoľvek dôvodu zlyhá. V tomto prípade nám PHP poskytuje niekoľko úhľadných funkcií na efektívne riešenie chyby.
  4. 4
    Zaregistrujte svojho robota. To znamená, že na server budete musieť zadať svoju prezývku, identitu a GECOS, bez registrácie na NickServ. Za týmto účelom napíšte na server príkazy NICK a USER, za ktorými nasleduje návrat na koniec riadka a nový riadok. Je nevyhnutné, aby ste to urobili presne tak, ako je to znázornené, pretože tak je to uvedené v RFC1459, špecifikácii pre protokol IRC.
    • Všimnite si toho, že musia byť zadané dva prostredné parametre (v tomto prípade * a 8), ale server ich ignoruje. Tieto dva sa používajú iba medzi prepojenými servermi, nie priamo sa pripájajúcim klientom.
  5. 5
    Pokračujte v načítavaní údajov zo zásuvky pomocou slučky. Ak by ste nepoužili slučku, váš skript by sa okamžite ukončil a robot by bol v podstate zbytočný. Aby ste zostali v spojení, musíte načítať údaje zo servera, skontrolovať ľubovoľný vstup v požadovanom prúde a v prípade potreby na ne odpovedať. Tu získavame údaje pomocou socket_read (), aby sme získali všetky dostupné údaje. Ak existuje, pokračujeme v robení toho, čo je v slučke. Mohlo by byť užitočné tiež odoslať nespracované údaje do konzoly, aby ste videli, čo sa deje z pohľadu robota.
    Ako uvediete svojho robota online
    Predtým, ako uvediete svojho robota online, získajte súhlas vlastníkov kanálov a operátorov IRC.
  6. 6
    Napíšte obslužný program ping. Toto je dôležité. Ak neodpovedáte na pingy včas, server vás odpojí. Najprv sa o to postarajme. Ping vyzerať, keď poslal zo servera: PING:rajaniemi.freenode.net. Server nemusí uvádzať svoj názov za ':', môže dodať čokoľvek chce. * Musíte * zopakovať presne to, čo povedal server, okrem použitia PONG.
  7. 7
    Pripojte sa k svojim kanálom. Dobre, máme robota, ktorý sa pripája k sieti a reaguje na pingy, ale inak nerobí nič. Aby ľudia videli a používali vášho robota, mal by byť v kanáli (inak by ste mu museli povedať, aby odpovedal na súkromné správy).
    • Za týmto účelom skontrolujeme stavové kódy servera 376 alebo 422. 376 znamená, že MOTD (správa dňa) je dokončená. 422 znamená, že nebolo odoslané žiadne MOTD. Že MOTD je niečo, čo server odosiela, keď sa pripojíte, ale je to dobrý indikátor toho, kedy sa môžeme začať spájať s kanálmi.
    • Budete musieť zadať príkaz JOIN. Za týmto príkazom môže nasledovať jeden alebo viac kanálov oddelených čiarkou.
    • Všimnite si, že údaje, ktoré server odosiela, sú vhodne oddelené medzerami. Týmto spôsobom môžeme údaje rozdeliť a odkazovať na ne pomocou indexu poľa.
  8. 8
    Odpovedajte na správy kanála. Teraz k zábavnej časti. Váš robot sa pridal k kanálu, takže ho teraz môžete používať na to, čo ste chceli. Vytvorme príklad príkazu s názvom @moo.
    • Všimnite si posunu, kde začínajú správy (to platí pre kanály aj pre súkromné správy). Vždy je na rovnakom mieste.
    • Príkazy s medzerami v nich môžete spracovať tak, že spojené údaje spojíte dohromady ($ d). To je nad rámec tohto článku.
    • Ak je cieľom kanál (napríklad #botters-test), odpoviete na to. Ak je to súkromná správa, tento kúsok bude prezývka vášho robota! Potom musíte odpovedať pomocou prezývky odosielateľa, nie vašej (inak by ste sa rozprávali sami so sebou, a to je hlúpe).
  9. 9
    Rozšírte svojho robota. Pomocou vyššie uvedenej implementácie môžete pridať mnoho nových funkcií. K sieti IRC je možné vydať mnoho ďalších príkazov, ako napríklad riadenie operácií, kopanie a banovanie, nastavenie témy a mnoho ďalších funkcií.

Tipy

  • Výsledok príkazu „/me“ môžete vytvoriť tak, že svoje správy predponujete takto:
    • PRIVMSG #kanál: \ 001AKCIA text tu \ 001.
    • \ 001 znamená ASCII znak 1 a bude takto interpretovaný v dvojitej citácii reťazca PHP. Alternatívne môžete použiť aj chr(1)mimo reťazca.
    Aké máte možnosti pri stavaní robota IRC
    V tejto príručke nájdete, aké máte možnosti pri stavaní robota IRC a ako ho postaviť úplne od začiatku.
  • Farby je možné vytvoriť v správe predponou „\ 003“ (kód ASCII 3), za ktorou nasleduje číslo farby. 0 = biela, 1 = čierna, 2 = modrá, 3 = zelená, 4 = červená [...]. Viac farieb nájdete na stránke mIRC.
  • Predtým, ako uvediete svojho robota online, získajte súhlas vlastníkov kanálov a operátorov IRC. Nie všetky siete a kanály majú voči robotom vítanú politiku, dokonca aj slušne vychovanú.
  • Niektoré démony IRC presahujú špecifikácie protokolu a implementujú ďalšie funkcie. Ak sa zameriavate na konkrétnu sieť, tieto funkcie môžete určite využiť, ak poznáte ich protokol. Ak však chcete, aby bol váš robot nasadený vo viacerých sieťach, snažte sa ho udržať tak, ako je v dokumente RFC.

Otázky a odpovede

  • Keď ich pridám do poznámkového bloku+, kam pridám tieto kódy?
    Vložte ich na webový server (napríklad Apache), ktorý podporuje PHP. XXAMP si môžete nainštalovať na svoj lokálny počítač alebo ho hostovať na inom webovom serveri.

FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail