Ako vyvinúť robota IRC: 12 krokov (s obrázkami)

Obsah:

Ako vyvinúť robota IRC: 12 krokov (s obrázkami)
Ako vyvinúť robota IRC: 12 krokov (s obrázkami)

Video: Ako vyvinúť robota IRC: 12 krokov (s obrázkami)

Video: Ako vyvinúť robota IRC: 12 krokov (s obrázkami)
Video: ЮЛЯ ФИНЕСС: Как я вышла с 8 этажа! Групповое изнасилование под мефедроном, психиатрическая больница 2024, Apríl
Anonim

Ak ste boli na Internet Relay Chat (IRC), je pravdepodobné, že ste sa v určitom okamihu stretli s robotom. Roboti 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ľ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.

Kroky

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

Vytvorte robot IRC, krok 1
Vytvorte robot IRC, krok 1

Krok 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. Vo zvyšku tejto príručky vyžadujú pokyny určité znalosti, ktoré je potrebné dodržať.

Krok 2: Vytvorte robota IRC
Krok 2: Vytvorte robota IRC

Krok 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.

Vytvorte robot IRC, krok 3
Vytvorte robot IRC, krok 3

Krok 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.

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

Vyvinúť robot IRC, krok 4
Vyvinúť robot IRC, krok 4

Krok 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íklad

    chat.freenode.net

  • Prístav: 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:

    prezývka! ident@meno hostiteľa

  • 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é.
Vytvorte robot IRC, krok 5
Vytvorte robot IRC, krok 5

Krok 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.

Vytvorte robot IRC, krok 6
Vytvorte robot IRC, krok 6

Krok 3. Pripojte sa k sieti

Na to budete musieť otvoriť soket serveru na uvedenom porte. Do tejto časti by ste mali pridať aj kód na spracovanie chýb v prípade, že sa pripojenie z akéhokoľvek dôvodu nepodarí. V tomto prípade nám PHP poskytuje niekoľko úhľadných funkcií na efektívne riešenie chyby.

Vytvorte robot IRC, krok 7
Vytvorte robot IRC, krok 7

Krok 4. Zaregistrujte svojho robota

To znamená, že na server budete musieť zadať svoju prezývku, identitu a GECOS, bez registrácie v službe 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 dva stredné parametre (v tomto prípade * a 8) musia byť zadané, ale server ich ignoruje. Tieto dva sa používajú iba medzi prepojenými servermi, nie priamo sa pripájajúcim klientom

Vytvorte robot IRC, krok 8
Vytvorte robot IRC, krok 8

Krok 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.

Vytvorte robot IRC, krok 9
Vytvorte robot IRC, krok 9

Krok 6. Napíšte obslužný program ping

Toto je dôležité. Ak neodpovedáte na pingy včas, server vás odpojí. Postarajme sa o to najskôr. Pingy po odoslaní zo servera vyzerajú takto:

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.

Vytvorte robot IRC, krok 10
Vytvorte robot IRC, krok 10

Krok 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.
Vytvorte robot IRC, krok 11
Vytvorte robot IRC, krok 11

Krok 8. Reagujte 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 ide o súkromnú správu, bude tento kúsok prezývkou 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).
Vytvorte robot IRC, krok 12
Vytvorte robot IRC, krok 12

Krok 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 sa takto interpretovať v dvojitej citácii reťazca PHP. 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á […]. Ďalšie farby nájdete na stránke mIRC.
  • Zo zdvorilosti získajte súhlas vlastníkov kanálov a operátorov IRC pred uvedením svojho robota do režimu online. Nie všetky siete a kanály majú vítanú politiku voči robotom, dokonca aj slušne vychovanú.
  • Niektoré démony IRC presahujú špecifikácie protokolu a implementujú ďalšie funkcie. Ak ho chystáte pre 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.

Odporúča: