Kako razviti IRC bota: 12 korakov (s slikami)

Kazalo:

Kako razviti IRC bota: 12 korakov (s slikami)
Kako razviti IRC bota: 12 korakov (s slikami)

Video: Kako razviti IRC bota: 12 korakov (s slikami)

Video: Kako razviti IRC bota: 12 korakov (s slikami)
Video: ДИМАШ И ДЕВУШКИ / В КОГО ВЛЮБЛЁН ДИМАШ / ГОРЯЧИЕ ТАНЦЫ И СВАДЬБА 2024, April
Anonim

Če ste bili na internetnem relejnem klepetu (IRC), obstaja velika verjetnost, da ste kdaj naleteli na bota. Boti so neodvisni programi ali skripti, ki se povežejo v omrežje na enak način kot človek. Lahko jih programirate tako, da se odzivajo na ukaze uporabnikov ali celo klepetajo. V tem priročniku lahko ugotovite, kakšne možnosti imate za izdelavo IRC bota, pa tudi, kako ga sestaviti iz nič.

Koraki

Metoda 1 od 2: Ocenjevanje možnosti

Razvijte IRC Bot 1. korak
Razvijte IRC Bot 1. korak

Korak 1. Razmislite o namestitvi odjemalskega skripta

Včasih želite narediti preprosto nalogo in ne želite, da bi bil to neodvisen program. V tem primeru lahko odjemalcu IRC priložite skript. To je precej običajno pri mIRC -ju, ki ima robusten skriptni mehanizem in široko paleto razpoložljivih skriptov. To je najlažja možnost in jo zelo priporočamo, če nimate veliko izkušenj s programiranjem. Za preostanek tega priročnika navodila zahtevajo nekaj znanja računalniškega programiranja.

Razvijte IRC Bot 2. korak
Razvijte IRC Bot 2. korak

Korak 2. Razmislite o že obstoječi kodni bazi za svojega bota

Obstaja veliko odprtokodnih in brezplačnih programov, ki vam lahko pomagajo hitro nastaviti lastnega prilagojenega bota. Eden takih primerov je Eggdrop, najstarejši IRC bot, ki se še vzdržuje.

Razvijte IRC Bot 3. korak
Razvijte IRC Bot 3. korak

Korak 3. Razmislite o pisanju lastnega bota

Za napredne uporabnike IRC in razvijalce, ki se že spoznajo na programski jezik, je to odlična možnost. Uporabljate lahko skoraj kateri koli jezik, če ima podporo za vtičnice, priljubljeni pa so Python, Lua, PHP, C in Perl. Če ne poznate nobenega od teh, vendar poznate drug jezik, to ni problem. Običajno lahko na spletu najdete primere v katerem koli jeziku, ki ga želite. V tem članku bomo prikazali uporabo PHP. Če želite uporabljati PHP, morate imeti v računalniku ali strežniku nameščen PHP-CLI.

  • PHP lahko prenesete s spletnega mesta php.net
  • Skripte PHP je mogoče izvesti iz ukazne vrstice. Za dodatne informacije in pomoč pri uporabi PHP glejte to stran z navodili za PHP.

Metoda 2 od 2: Razvoj lastnega bota

Razvijte IRC Bot 4. korak
Razvijte IRC Bot 4. korak

Korak 1. Zberite podrobnosti o povezavi

Za uspešno povezavo z omrežjem boste morali dobiti naslednje podatke.

  • Strežnik: Ime domene strežnika za povezavo z IRC, na primer

    chat.freenode.net

  • Pristanišče: V večini primerov je to 6667, če pa niste prepričani, preverite svojega odjemalca IRC ali spletno mesto omrežja.
  • Vzdevek: Vzdevek, ki bi ga moral uporabljati vaš bot. Upoštevajte, da nekateri posebni znaki običajno niso dovoljeni (@#! ~).
  • Ident: Polje ident se prikaže za vzdevkom, ko nekdo izvede WHOIS na naslednji način:

    vzdevek! ident@ime gostitelja

  • GECOS: To polje običajno vsebuje pravo ime uporabnika ali splošen opis bota, vendar lahko vanj vnesete kar želite.
  • Kanal: Običajno želite, da je vaš bot prisoten v enem ali več kanalih. V večini omrežij imajo te predpono »#«, morda pa je kaj drugega.
Razvijte IRC Bot 5. korak
Razvijte IRC Bot 5. korak

Korak 2. Inicializirajte konfiguracijo v skriptu

Najosnovnejši način za to je poimenovanje nekaj spremenljivk glede na zgornja imena konfiguracije. Lahko jih tudi shranite v konfiguracijsko datoteko in jih razčlenite, toda zaenkrat se bomo držali absolutno nujnih potreb.

Razvijte IRC Bot 6. korak
Razvijte IRC Bot 6. korak

Korak 3. Povežite se z omrežjem

Če želite to narediti, morate odpreti vtičnico za strežnik na določenih vratih. V tem delu morate dodati tudi kodo za obravnavo napak, če povezava iz kakršnega koli razloga ne uspe. V tem primeru nam PHP nudi nekaj čednih funkcij za učinkovito reševanje napake.

Razvijte IRC Bot 7. korak
Razvijte IRC Bot 7. korak

Korak 4. Registrirajte bota

To pomeni, da strežniku posredujete svoj vzdevek, identiteto in GECOS, ne da bi se registrirali pri NickServ. Če želite to narediti, v strežnik napišite ukaze NICK in USER, nato pa vrnitev nosilca in novo vrstico. Nujno morate to narediti tako, kot je prikazano, ker je tako določeno v RFC1459, specifikaciji za protokol IRC.

Upoštevajte, da je treba določiti srednja dva parametra (v tem primeru * in 8), strežnik pa jih prezre. Ti dve se uporabljata samo med povezanimi strežniki, ne pa za neposredno povezovalnega odjemalca

Razvijte IRC Bot 8. korak
Razvijte IRC Bot 8. korak

Korak 5. Pridobite podatke iz vtičnice z uporabo zanke

Če ne bi uporabili zanke, bi se vaš skript takoj končal in bot bi bil v bistvu neuporaben. Če želite ostati povezani, morate iz strežnika pridobiti podatke, preveriti, ali je v toku kateri koli vnos, in se nanj odzvati, če je tako. Tukaj zbiramo podatke z uporabo socket_read (), da zberemo vse razpoložljive podatke. Če obstaja, nadaljujemo s tem, kar je v teku. Morda bi bilo koristno, da neobdelane podatke iznesete tudi na konzolo, tako da lahko vidite, kaj se dogaja z vidika bota.

Razvijte IRC Bot 9. korak
Razvijte IRC Bot 9. korak

Korak 6. Napišite ping handler

To je pomembno. Če se na ping ne odzovete pravočasno, vas strežnik prekine. Najprej poskrbimo za to. Pingi so pri pošiljanju s strežnika videti tako:

PING: rajaniemi.freenode.net

. Strežniku ni treba postaviti svojega imena za ':', lahko dobavi karkoli želi. * Morate * natančno ponoviti, kar je rekel strežnik, razen z uporabo PONG -a.

Razvijte IRC Bot 10. korak
Razvijte IRC Bot 10. korak

Korak 7. Pridružite se svojim kanalom

V redu, torej imamo bot, ki se poveže z omrežjem in se odziva na pingove, sicer pa nič ne naredi. Da lahko ljudje vidijo vašega bota in ga uporabljajo, mora biti v kanalu (sicer bi mu morali povedati, da se odzove na zasebna sporočila).

  • V ta namen bomo preverili kode stanja strežnika 376 ali 422. 376 pomeni, da je MOTD (sporočilo dneva) končano. 422 pomeni, da ni bilo nobenega MOTD za pošiljanje. Ta MOTD je le nekaj, kar strežnik pošlje, ko se povežete, vendar je dober pokazatelj, kdaj se lahko začnemo pridruževati kanalom.
  • Izdati morate ukaz JOIN. Temu ukazu lahko sledi en ali več kanalov, ločenih z vejico.
  • Upoštevajte, da so podatki, ki jih pošilja strežnik, priročno ločeni s presledki. Na ta način lahko podatke razdelimo in nanje navedemo z uporabo indeksa matrike.
Razvijte IRC Bot 11. korak
Razvijte IRC Bot 11. korak

Korak 8. Odgovorite na sporočila kanala

Zdaj pa zabavni del. Vaš bot se je pridružil kanalu, zato ga lahko uporabite za tisto, kar ste želeli. Ustvarimo primer ukaza z imenom @moo.

  • Upoštevajte odmik, kjer se sporočila začnejo (to velja tako za kanale kot za zasebna sporočila). Vedno je na istem mestu.
  • Ukaze z presledki lahko upravljate tako, da razčlenjene podatke znova združite ($ d). To presega obseg tega članka.
  • Če je cilj kanal (na primer #botters-test), na to odgovorite. Če gre za zasebno sporočilo, bo ta bit vzdevek vašega bota! Nato morate odgovoriti z vzdevkom pošiljatelja, ne vašim (sicer bi se pogovarjali sami s seboj, kar je neumno).
Razvijte IRC Bot 12. korak
Razvijte IRC Bot 12. korak

Korak 9. Razširite bot

Z zgornjo izvedbo lahko dodate veliko novih funkcij. Mreži IRC je mogoče izdati še veliko drugih ukazov, kot so upravljanje operacij, brcanje in prepoved, nastavitev teme, med mnogimi drugimi funkcijami.

Nasveti

  • Rezultat ukaza "/me" lahko ustvarite tako, da sporočila dodate tako predpono:

    • PRIVMSG #channel: / 001Delovanje besedilo tukaj / 001.
    • 001 pomeni znak 1 ASCII in bo kot tak razložen v nizu PHP z dvojnimi navedbami. Druga možnost je, da uporabite

      chr (1)

    • zunaj niza.
  • Barve je mogoče ustvariti v sporočilu s predpono "\ 003" (koda ASCII 3), ki ji sledi številka za barvo. 0 = bela, 1 = črna, 2 = modra, 3 = zelena, 4 = rdeča […]. Za več barv si oglejte stran mIRC.
  • Zaradi vljudnosti pridobite soglasje lastnikov kanalov in operaterjev IRC, preden svojega bota povežete s spletom. Vsa omrežja in kanali nimajo dobrodošle politike do botov, tudi tistih z dobrim vedenjem.
  • Nekateri damoni IRC presegajo specifikacije protokola in izvajajo druge funkcije. Če ga pripravljate za določeno omrežje, lahko zagotovo uporabite te funkcije, če poznate njihov protokol. Če želite, da je vaš bot razmeščen v več omrežjih, ga poskusite držati tistega, kar je v RFC.

Priporočena: