Če ste že bili v Internet Relay Chat (IRC), je verjetno, da ste v določenem trenutku naleteli na bota. Boti so neodvisni programi ali skripti, ki se na omrežje povežejo na enak način kot človek. Lahko jih programirajo tako, da se odzivajo na uporabniške ukaze ali celo klepetajo. V tem priročniku najdete možnosti izbire za izdelavo IRC-bota in kako ga zgraditi iz nič.
Koraki
Metoda eno od 2: Ocenjevanje možnosti
- eno Razmislite o namestitvi odjemalskega skripta. Včasih želite preprosto opravljeno nalogo in ne želite, da je to samostojen program. V tem primeru lahko odjemalcu IRC priložite skript. To je zelo pogosto opraviti z mIRC , ki ima robusten skriptni stroj in široko paleto razpoložljivih skriptov. To je najlažja možnost in zelo priporočljiva, če nimate veliko izkušenj s programiranjem. Preostali del tega priročnika zahteva nekaj znanja računalniškega programiranja.
- 2. Razmislite o že obstoječi bazi kod za vašega bota. Obstaja veliko odprtokodnih in brezplačnih programov, s pomočjo katerih lahko hitro nastavite svojega prilagojenega bota. Tak primer je Eggdrop , najstarejši bot IRC, ki se še vedno vzdržuje.
- 3. Razmislite o pisanju lastnega bota. Za napredne uporabnike IRC in razvijalce, ki se že poznajo programski jezik, je to odlična možnost. Uporabite lahko skoraj kateri koli jezik, če ima podporo za vtičnice, med priljubljene pa spadajo Python, Lua, PHP, C in Perl. Če ne poznate nobenega od teh, a poznate drug jezik, to ni problem. Običajno lahko v 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 iz php.net
- PHP skripte je mogoče izvajati iz ukazne vrstice. Za dodatne informacije in pomoč pri uporabi PHP glejte na tej strani priročnika za PHP .
Metoda 2. od 2: Razvijanje lastnega bota
- eno Zberite podrobnosti o povezavi. Za uspešno povezavo z omrežjem boste morali dobiti naslednje informacije.
- Strežnik : Domensko ime strežnika, ki se uporablja 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 ga mora uporabiti vaš bot. Upoštevajte, da nekateri posebni znaki običajno niso dovoljeni (@ #! ~).
- Ident : Polje ident se pojavi za vzdevkom, ko nekdo izvede WHOIS, kot je ta:
nickname!ident@hostname
- GECOS : To polje običajno vsebuje uporabnikovo pravo ime ali splošen opis bota, vendar lahko vanj vstavite, 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 gre za kaj drugega.
- Strežnik : Domensko ime strežnika, ki se uporablja za povezavo z IRC, na primer
- 2. Inicializirajte konfiguracijo v svojem skriptu. Najosnovnejši način za to je poimenovanje nekaj spremenljivk glede na zgornja imena konfiguracij. Lahko jih shranite tudi v konfiguracijsko datoteko in jih razčlenite, vendar se bomo trenutno držali nujnih potreb.
- 3. Povežite se z omrežjem. Če želite to narediti, morate strežniku odpreti vtičnico na določenih vratih. V ta del dodajte tudi nekaj kode za ravnanje z napakami, če povezava iz kakršnega koli razloga ne uspe. V tem primeru nam PHP ponuja nekaj dobrih funkcij za učinkovito obvladovanje napake.
- 4. Registrirajte svojega bota. To pomeni, da strežniku posredujete svoj vzdevek, ident in GECOS, ne registracija pri NickServ. Če želite to narediti, na strežnik preprosto zapišite ukaza NICK in USER, čemur sledita vrnitev nosilca in nova vrstica. Nujno morate, da to storite natančno tako, kot je prikazano, saj je tako določeno v RFC1459, specifikaciji za protokol IRC.
- Upoštevajte, da morata biti podana srednja parametra (v tem primeru * in 8), ki pa ju strežnik prezre. Ta dva uporabljata le med povezanimi strežniki, ne pa tudi neposredno povezovalni odjemalec.
- 5. Nadaljujte s pridobivanjem podatkov 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 s strežnika pridobiti podatke, preveriti, ali je v toku želeni vnos, in se nanj odzvati. Tu zbiramo podatke s pomočjo socket_read (), da zajamemo vse razpoložljive podatke. Če obstaja, nadaljujemo s tem, kar je v zanki. Morda bi bilo koristno, če na konzolo iznesete tudi neobdelane podatke, da boste lahko videli, kaj se dogaja z vidika bota.
- 6. Napiši vodnik pinga. To je pomembno. Če se na ping ne odzovete pravočasno, vas strežnik odklopi. Najprej poskrbimo za to. Ko so poslani s strežnika, so pingi videti tako:
PING :rajaniemi.freenode.net
. Strežniku ni treba postaviti imena za ':', lahko dobavi, kar hoče. * Ponovite * natančno to, kar je rekel strežnik, razen z uporabo PONG. - 7. Pridružite se svojim kanalom. V redu, torej imamo bota, ki se poveže z omrežjem in se odzove na pinge, sicer pa ne naredi ničesar. Da lahko ljudje vidijo in uporabljajo vašega bota, naj bo v kanalu (sicer bi mu morali povedati, naj odgovori na zasebna sporočila).
- Za to bomo preverili, ali sta kodo 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. Da je MOTD le nekaj, kar strežnik pošlje, ko se povežete, je pa dober pokazatelj, kdaj se lahko začnemo pridruževati kanalom.
- Izdati boste morali ukaz JOIN. Temu ukazu lahko sledi en ali več kanalov, ločenih z vejico.
- Upoštevajte, da so podatki, ki jih pošlje strežnik, priročno razmejeni s presledki. Na ta način lahko podatke razdelimo in sklicujemo nanje s pomočjo indeksa matrike.
- 8. Odzivajte se na sporočila v kanalu. Zdaj pa zabavni del. Vaš bot se je pridružil kanalu, tako da ga lahko zdaj uporabite za tisto, kar ste želeli. Ustvarimo primer ukaza, imenovanega @moo.
- Upoštevajte odmik, kjer se začnejo sporočila (to velja tako za kanale kot za zasebna sporočila). Vedno je na istem mestu.
- Ukaze s presledki v njih lahko obdelate tako, da zlomite razdeljene podatke nazaj ($ d). To presega obseg tega članka.
- Če je cilj kanal (na primer # botters-test), odgovorite na to. Če gre za zasebno sporočilo, bo ta bit vzdevek vašega bota! Nato morate odgovoriti z vzdevkom pošiljatelja, ne z vašim (sicer bi govorili sami s seboj, in to je prav neumno).
- 9. Razširite svojega bota. Z zgornjo izvedbo lahko dodate veliko novih funkcij. Obstaja veliko drugih ukazov, ki jih je mogoče izdati omrežju IRC, na primer upravljanje operacij, brcanje in prepoved, nastavitev teme in številne druge funkcije. Oglas
Vprašanja in odgovori v skupnosti
Iskanje Dodaj novo vprašanje- Vprašanje Ko jih dodam v beležko +, kje lahko dodam te kode? letenje 8lack Postavite jih na spletni strežnik (na primer Apache), ki podpira PHP. XXAMP lahko namestite v svoj lokalni računalnik ali jih namestite na spletni strežnik anher.
Oglas
Nasveti
- Rezultat ukaza '/ me' lahko ustvarite s predpono svojih sporočil:
- PRIVMSG #channel: 001Akcija besedilo tukaj 001 .
- 001 pomeni ASCII znak 1 in bo kot tak razložen v dvojno navajanem PHP-nizu. Lahko pa uporabite
chr(1)
zunaj niza.
- Barve lahko v sporočilu ustvarite s predpono ' 003' (ASCII koda 3), ki ji sledi številka za barvo. 0 = bela, 1 = črna, 2 = modra, 3 = zelena, 4 = rdeča [...]. Glej mIRC stran za več barv.
- Vljudnost pridobite soglasje lastnikov kanalov in operaterjev IRC, preden svojega bota povežete v splet. Vsa omrežja in kanali nimajo politike dobrodošlice do botov, tudi tistih, ki se dobro obnašajo.
- Nekateri demoni IRC presegajo specifikacije protokola in izvajajo druge funkcije. Če jo pripravljate za določeno omrežje, lahko te funkcije zagotovo uporabite, če poznate njihov protokol. Če želite, da bo vaš bot razporejen v več omrežjih, ga poskusite obdržati v skladu s RFC.
Oglas Pošljite namig Vsi prispevki namigov so pred objavo natančno pregledani. Hvala, ker ste namig poslali v pregled!