Kuidas arendada IRC bot

Kui olete olnud Interneti-releede vestluses (IRC), on tõenäoline, et olete mingil hetkel botiga kokku puutunud. Robotid on sõltumatud programmid või skriptid, mis ühenduvad võrguga samamoodi nagu inimene. Neid saab programmeerida vastama kasutaja käskudele või isegi vestlema. Selles juhendis leiate nii IRC-roboti loomise võimalused kui ka nullist ülesehitamise võimalused.



Meetod üks 2-st: Valikute hindamine

  1. üks Kaaluge kliendi skripti installimist. Mõnikord tahad lihtsalt lihtsat ülesannet teha ja ei taha, et see oleks iseseisev programm. Sel juhul saate IRC kliendile manustada skripti. See on üsna tavaline mIRC , millel on jõuline skriptimismootor ja lai valik erinevaid skripte. See on kõige lihtsam valik ja väga soovitatav, kui teil pole palju või üldse programmeerimiskogemust. Selle juhendi ülejäänud osas peavad juhised järgima teatavaid teadmisi arvutiprogrammeerimisest.
  2. 2 Mõelge oma roboti olemasolevale koodibaasile. Seal on palju avatud lähtekoodiga ja tasuta programme, mis aitavad teil oma kohandatud roboti kiiresti üles seada. Üks selline näide on Munakukk , vanim IRC-robot, mida endiselt hooldatakse.
  3. 3 Kaaluge oma roboti kirjutamist. Täiustatud IRC kasutajatele ja arendajatele, kes juba programmeerimiskeeles orienteeruvad, on see suurepärane võimalus. Saate kasutada üsna palju soovitud keelt, kui sellel on pistikupesa tugi, kuid populaarsete keelte hulka kuuluvad Python, Lua, PHP, C ja Perl. Kui te ei tea ühtegi neist, kuid oskate mõnda muud keelt, pole see probleem. Tavaliselt leiate veebis näiteid mis tahes soovitud keeles. Selle artikli jaoks demonstreerime PHP kasutamist. PHP kasutamiseks peate oma arvutisse või serverisse installima PHP-CLI.
    • PHP-d saab alla laadida aadressilt php.net
    • PHP-skripte saab käivitada käsurealt. Lisateavet ja abi PHP kasutamisest vt see PHP käsiraamat .
    Reklaam

Meetod 2 2-st: Oma Boti arendamine

  1. üks Koguge ühenduse üksikasjad. Edukaks võrguga ühenduse loomiseks peate hankima järgmise teabe.
    • Server : IRC-ga ühenduse loomiseks kasutatud serveri domeeninimi, näiteks chat.freenode.net
    • Sadam : Enamasti on see 6667, kuid kui te pole selles kindel, kontrollige oma IRC klienti või võrgu veebisaiti.
    • Hüüdnimi : Hüüdnimi, mida teie bot peaks kasutama. Pidage meeles, et mõned erimärgid pole tavaliselt lubatud (@ #! ~).
    • Ident : Identivälja kuvatakse hüüdnime järele, kui keegi teeb sellist WHOIS-i: nickname!ident@hostname
    • GECOS : Sellel väljal on tavaliselt kasutaja tegelik nimi või roboti üldine kirjeldus, kuid võite sinna lisada kõik, mida soovite.
    • Kanal : Tavaliselt soovite, et teie bot oleks kohal ühes või mitmes kanalis. Enamikus võrkudes on nende ees ees #, kuid see võib olla midagi muud.
  2. 2 Alustage oma skripti konfiguratsioon. Kõige elementaarsem viis selleks on nimetada mõned muutujad vastavalt ülaltoodud konfiguratsiooninimedele. Võite neid ka konfigureerimisfaili salvestada ja sõeluda, kuid praegu peame lihtsalt hädavajalikuks.
  3. 3 Ühendage võrguga. Selleks peate avama pesa määratud pordi serverile. Sellesse ossa peaksite lisama ka mõne tõrkeotsingu koodi juhuks, kui ühendus mingil põhjusel ebaõnnestub. Sel juhul pakub PHP vea tõhusaks käsitlemiseks mõningaid funktsioone.
  4. 4 Registreerige oma bot. See tähendab oma hüüdnime, identiteedi ja GECOS-i serverisse edastamist, mitte registreerumine NickServis. Selleks kirjutage lihtsalt serverisse käsud NICK ja USER, millele järgneb käru tagasipöördumine ja uus rida. On hädavajalik, et teeksite seda täpselt nii, nagu on näidatud, sest nii on see täpsustatud IRC-protokolli spetsifikatsioonis RFC1459.
    • Pange tähele, et kaks keskmist parameetrit (antud juhul * ja 8) peavad olema määratud, kuid server eirab neid. Neid kahte kasutatakse ainult lingitud serverite vahel, mitte otse ühendav klient.
  5. 5 Jätkake pistikupesast andmete toomist silmusega. Kui te ei kasutanud tsüklit, lõpetatakse teie skript kohe ja bot on põhimõtteliselt kasutu. Ühenduse hoidmiseks peate serverist andmeid tooma, kontrollima, kas soovitud voos on sisendeid ja vastama, kui jah. Siin haarame andmeid, kasutades socket_read (), et haarata meile kättesaadavaid andmeid. Kui on, siis jätkame kõike, mis on silmus. Abi võib olla ka algandmete väljastamisest konsoolile, et näeksite roboti vaatenurgast toimuvat.
  6. 6 Kirjutage pingihaldur. See on tähtis. Kui te ei reageeri pingidele õigeaegselt, ühendab server teie ühenduse. Hoolitseme kõigepealt selle eest. Serverist saadetud pingid näevad välja sellised: PING :rajaniemi.freenode.net. Server ei pea oma nime „:” järele panema, see võib pakkuda mida iganes soovib. Peate * kordama täpselt seda, mida server ütles, välja arvatud PONGi kasutamine.
  7. 7 Liituge oma kanalitega. Olgu, nii et meil on robot, mis loob ühenduse võrguga ja reageerib pingidele, kuid muidu ei tee midagi. Selleks, et inimesed saaksid teie robotit näha ja seda kasutada, peaks see asuma kanalis (vastasel juhul peate privaatsõnumitele vastamiseks käskima).
    • Selleks kontrollime, kas serveri olekukoodid 376 või 422. 376 tähendab, et MOTD (päeva sõnum) on lõppenud. 422 tähendab, et saatmiseks ei olnud ühtegi MOTD-d. See MOTD on lihtsalt midagi, mida server ühenduse loomisel saadab, kuid see on hea näitaja, millal saame kanalitega liituma hakata.
    • Peate välja andma JOIN käsu. Selle käsu järel võib olla üks või mitu komaga eraldatud kanalit.
    • Pange tähele, et serveri saadetud andmed on mugavalt tühikutega piiratud. Nii saame andmed jagada ja massiiviindeksi abil neile viidata.
  8. 8 Kanali sõnumitele vastamine. Nüüd aga lõbusast osast. Teie bot on liitunud kanaliga, nii et nüüd saate seda kasutada selleks, mida soovite. Loome näite käsu nimega @moo.
    • Pange tähele nihe, kus sõnumid algavad (see kehtib nii kanalite kui ka privaatsõnumite kohta). See on alati samas kohas.
    • Tühikutega käskudega saate hakkama, ühendades tükeldatud andmed kokku ($ d). See ei kuulu selle artikli reguleerimisalasse.
    • Kui sihtmärgiks on kanal (näiteks # botters-test), siis vastate sellele. Kui see on privaatne sõnum, on see natuke teie bot hüüdnimi! Seejärel peate vastama saatja, mitte enda hüüdnimele (muidu räägiksite iseendaga ja see on lihtsalt rumal).
  9. 9 Laiendage oma bot. Ülaltoodud rakenduse abil saate lisada palju uusi funktsioone. IRC-võrgule saab anda palju muid käske, nagu opide haldamine, löömine ja keelamine, teema seadmine paljude muude funktsioonide kõrval. Reklaam

Kogukonna küsimused ja vastused

Otsing Lisage uus küsimus
  • Küsimus pärast nende lisamist märkmikus +, kuhu need koodid lisada? lendavad 8puud Pange need veebiserverisse (näiteks Apache), mis toetab PHP-d. Võite XXAMP-i installida oma kohalikku arvutisse või majutada neid teises veebiserveris.
Esita küsimus 200 tähemärki on jäänud Lisage oma e-posti aadress, et saada sõnum, kui sellele küsimusele vastatakse. Esita
Reklaam

Näpunäited

  • Käsu '/ me' tulemuse saate, kirjutades oma sõnumid ette nii:
    • PRIVMSG #kanal: 001ACTION tekst siin 001 .
    • 001 tähendab ASCII märki 1 ja seda tõlgendatakse sellisena topelttsiteeritud PHP-stringis. Teise võimalusena võite kasutada chr(1) väljaspool stringi.
  • Värve saab koostada sõnumis, lisades eesliite ' 003' (ASCII kood 3), millele järgneb värvi number. 0 = valge, 1 = must, 2 = sinine, 3 = roheline, 4 = punane [...]. Vaata mIRC lehel rohkem värve.
  • Viisakuse huvides hankige enne oma boti võrku viimist kanaliomanike ja IRC-operaatorite nõusolek. Kõigil võrkudel ja kanalitel pole robotite suhtes tervitatavat poliitikat, isegi heade käitumistega.
  • Mõned IRC-deemonid ületavad protokolli spetsifikatsioone ja rakendavad muid funktsioone. Kui kasutate seda kindla võrgu jaoks, saate kindlasti neid funktsioone kasutada, kui teate nende protokolli. Kui soovite, et teie bot oleks paigutatud mitmesse võrku, proovige hoida see RFC-s oleval tasemel.

Reklaam Esita näpunäide Kõik näpunäited on enne avaldamist hoolikalt läbi vaadatud Täname, et saatsid vihje ülevaatamiseks!

Enim Küsimusi

Isegi kui teil pole kaablit, saate Fox News'i oma arvutis, Rokus või muus voogesitusseadmes otse vaadata. Siin on teie täielik juhend selle tegemiseks.

Federer ja Nadal on oma kõrgetasemelises rivaalitsemises mänginud eepilisi kohtumisi ja siin on pilk 5 parimale neist slämmidel.

Kas Lucas Pouille suudab tänases matšis mängida spoilsporti ja häirib Federeri teed 100. matši võiduni Wimbledonis 2019 ?.

Plastiseerimata polüvinüülkloriid, sageli märgistatud kui uPVC või UPVC, on kerge, kuid tugev ja jäik materjal, mis sobib suurepäraselt kasutamiseks ustes. UPVC uste lisakasu on see, et neid on tavaliselt üsna lihtne reguleerida. Kui vajate ...

Mõned liiga tippmängijad kohtuvad virtuaalsel lehtpuul NBA 2K turniiril. Siit saate teada, kuidas seda võrgus ilma kaablita vaadata.