Ak ste boli na Internet Relay Chat (IRC), je pravdepodobné, že ste v určitom okamihu narazili na robota. Roboty sú nezávislé programy alebo skripty, ktoré sa pripájajú k sieti rovnakým spôsobom ako človek. Môžu byť naprogramované tak, aby reagovali na príkazy používateľov alebo dokonca chatovali. V tejto príručke nájdete, aké sú vaše možnosti na zostavenie IRC robota a ako ho vytvoriť úplne od nuly.
Kroky
Metóda jeden z 2: Možnosti hodnotenia
- jeden Zvážte inštaláciu klientskeho skriptu. Niekedy jednoducho chcete urobiť jednoduchú úlohu a nechcete, aby to bol nezávislý program. V takom prípade môžete ku klientovi IRC pripojiť skript. Toto je celkom bežné mIRC , ktorý má robustné skriptovacie jadro a širokú škálu dostupných skriptov. Toto je najjednoduchšia voľba a veľmi sa odporúča, ak nemáte veľa skúseností s programovaním. Pre zvyšok tejto príručky si pokyny vyžadujú určité znalosti počítačového programovania.
- 2 Zvážte už existujúcu databázu kódov pre vášho robota. Existuje veľa programov s otvoreným zdrojom a bezplatných programov, ktoré vám pomôžu rýchlo nastaviť vlastného prispôsobeného robota. Jedným z takýchto príkladov je Vajcovník , najstarší IRC robot stále udržiavaný.
- 3 Zvážte napísanie vlastného robota. Pre pokročilých používateľov IRC a vývojárov, ktorí už vedia programovací jazyk, je to skvelá voľba. Môžete použiť takmer akýkoľvek jazyk, ktorý podporuje, pokiaľ má podporu soketov. Medzi populárne jazyky, ktoré sa používajú, patria Python, Lua, PHP, C a Perl. Ak neviete nič z toho, ale viete iný jazyk, nie je to problém. Príklady na webe zvyčajne nájdete v ľubovoľnom jazyku, ktorý chcete. V tomto článku si ukážeme použitie PHP. Aby ste mohli 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é spustiť z príkazového riadku. Ďalšie informácie a pomoc s používaním PHP nájdete na táto manuálna stránka PHP .
Metóda 2 z 2: Vývoj vlastného robota
- jeden Zhromaždite podrobnosti o pripojení. Nasledujúce informácie budete potrebovať, aby ste sa mohli úspešne pripojiť k sieti.
- Server : Názov domény servera použitého na pripojenie k IRC, napríklad
chat.freenode.net
- Prístav : Vo väčšine prípadov je to 6667, ale ak si nie ste istí, skontrolujte svojho vlastného IRC klienta 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 nie sú zvyčajne povolené (@ #! ~).
- Ident : Identifikačné pole sa zobrazí za prezývkou, keď niekto vykoná WHOIS takto:
nickname!ident@hostname
- GECOS : Toto pole zvyčajne obsahuje skutočné meno používateľa alebo všeobecný popis robota, môžete tam však vložiť čokoľvek chcete.
- Kanál : Spravidla chcete, aby bol váš robot prítomný v jednom alebo viacerých kanáloch. Vo väčšine sietí má predponu „#“, ale môže to byť niečo iné.
- Server : Názov domény servera použitého na pripojenie k IRC, napríklad
- 2 Inicializujte konfiguráciu vo svojom skripte. Najzákladnejším spôsobom 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 momentálne zostaneme pri absolútnych nutnostiach.
- 3 Pripojte sa k sieti. Aby ste to dosiahli, budete musieť otvoriť soket na serveri na zadanom porte. Do tejto časti by ste mali pridať aj nejaký kód na spracovanie chýb pre prípad, že by spojenie z nejakého dôvodu zlyhalo. V takom prípade nám PHP poskytuje niekoľko prehľadných funkcií na efektívne riešenie chyby.
- 4 Zaregistrujte si robota. To znamená zadať na server svoju prezývku, identitu a GECOS, nie registrácia na NickServ. Vykonáte to tak, že na server napíšete príkazy NICK a USER, potom nasleduje návrat vozíka a nový riadok. Je nevyhnutné, aby ste to robili presne tak, ako je to znázornené, pretože tak je to špecifikované v RFC1459, špecifikácii protokolu IRC.
- Upozorňujeme, že je potrebné zadať stredné dva parametre (v tomto prípade * a 8), ale server ich ignoruje. Tieto dva sa používajú iba medzi prepojenými servermi, nie priamo pripojeným klientom.
- 5 Stále načítajte údaje 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ý. Ak chcete zostať v spojení, musíte načítať údaje zo servera, skontrolovať všetky vstupy v streame, ktoré chcete, a odpovedať na ne, ak je to tak. Tu zhromažďujeme údaje pomocou socket_read (), aby sme zhromaždili všetky údaje, ktoré máme k dispozícii. Ak existuje, robíme všetko, čo je v slučke. Môže byť užitočné tiež odoslať nespracované údaje do konzoly, aby ste videli, čo sa deje, z pohľadu robota.
- 6 Napíš obslužný program ping. Toto je dôležité. Ak neodpoviete na príkaz ping včas, server vás odpojí. Najprv sa o to postarajme. Ping vyzerá takto, keď je odoslaný zo servera:
PING :rajaniemi.freenode.net
. Server nemusí uvádzať svoje meno za znakom „:“, môže dodávať, čo chce. * Musíte * opakovať presne to, čo povedal server, s výnimkou použitia PONG. - 7 Pripojte sa k svojim kanálom. Dobre, takže máme robota, ktorý sa pripája k sieti a reaguje na ping, ale inak nerobí nič. Aby ľudia videli a používali vášho robota, mal by byť v kanáli (inak mu musíte 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 hotová. 422 znamená, že nebolo možné poslať žiadny MOTD. Toto MOTD je niečo, čo server pošle, keď sa pripojíte, ale je to dobrý indikátor, keď sa môžeme začať pripájať ku kanálom.
- Budete musieť vydať 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ú pohodlne ohraničené medzerami. Týmto spôsobom môžeme rozdeliť údaje a odkazovať na ne pomocou indexu poľa.
- 8 Odpovedajte na správy kanála. Teraz pre zábavnú časť. Váš robot sa pripojil k kanálu, takže ho teraz môžete použiť na to, čo ste chceli. Vytvorme ukážkový príkaz s názvom @moo.
- Všimnite si posunutie, kde správy začínajú (to platí pre kanály aj súkromné správy). Je vždy na rovnakom mieste.
- Príkazy, ktoré obsahujú medzery, môžete spracovať tak, že spojíte spojené údaje dohromady ($ d). To je nad rámec tohto článku.
- Ak je cieľom kanál (napríklad # botters-test), odpovedzte na to. Ak je to súkromná správa, bude tento bit prezývkou vášho robota! Potom musíte odpovedať pomocou prezývky odosielateľa, nie svojej (inak by ste hovorili sami so sebou, a to je hlúpe).
- 9 Rozšírte svojho robota. Pomocou vyššie uvedenej implementácie môžete pridať veľa nových funkcií. Existuje mnoho ďalších príkazov, ktoré možno vydať sieti IRC, ako je správa operácií, kopanie a banovanie, nastavenie témy a mnoho ďalších funkcií. Reklama
Otázky a odpovede komunity
Vyhľadávanie Pridať novú otázku- Otázka Po pridaní do poznámkového bloku +, kde mám pridať tieto kódy? lietanie 8lack Umiestnite ich na webový server (napríklad Apache), ktorý podporuje PHP. Službu XXAMP môžete nainštalovať na miestny počítač alebo ho umiestniť na inom webovom serveri.
Reklama
Tipy
- Výsledok príkazu „/ me“ môžete vytvoriť tak, že pred svoje správy pridáte predponu takto:
- PRIVMSG # kanál: 001AKCIA tu text 001 .
- 001 znamená ASCII znak 1 a bude sa interpretovať ako taký v reťazci PHP s dvoma úvodzovkami. Prípadne môžete použiť
chr(1)
mimo reťazca.
- Farby je možné v správe vytvoriť predponou „ 003“ (kód ASCII 3), za ktorou nasleduje číslo farby. 0 = biela, 1 = čierna, 2 = modrá, 3 = zelená, 4 = červená [...]. Pozri mIRC stránka pre viac farieb.
- Pred uvedením robota do prevádzky ako zdvorilosť získajte súhlas vlastníkov kanálov a prevádzkovateľov IRC. Nie všetky siete a kanály majú voči robotom vítanú politiku, dokonca aj tie, ktoré sa správajú slušne.
- Niektoré IRC démoni idú nad rámec špecifikácií protokolu a implementujú ďalšie funkcie. Ak sa chystáte pre konkrétnu sieť, môžete tieto funkcie určite využiť, ak viete o ich protokole. Ak chcete, aby bol váš robot nasadený vo viacerých sieťach, skúste to dodržať v súlade s RFC.
Reklama Pridať tip Všetky príspevky tipov sú pred zverejnením starostlivo skontrolované. Ďakujeme za odoslanie tipu na kontrolu!